当前位置: 首页 > article >正文

leetcode 47.全排列||

1.题目要求:

给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。

 

示例 1:

输入:nums = [1,1,2]
输出:
[[1,1,2],
 [1,2,1],
 [2,1,1]]
示例 2:

输入:nums = [1,2,3]
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

2.题目代码:

class Solution {
public:
    vector<vector<int>> result;
    vector<int> array;
    void backtricking(vector<int>& nums,vector<bool>& used){
        //如果数组长度等于nums的数组,则放入答案数组中
        if(array.size() == nums.size()){
            result.push_back(array);
            return;
        }
        for(int i = 0;i < nums.size();i++){
            //去重操作
            if(i > 0&&nums[i] == nums[i - 1]&&used[i - 1] == false){
                continue;
            }
            if(used[i] == false){
                array.push_back(nums[i]);
                used[i] = true;
                backtricking(nums,used);
                //回溯
                array.pop_back();
                used[i] = false;
            }else{
                continue;
            }
        }
    }
    vector<vector<int>> permuteUnique(vector<int>& nums) {
        //先排序
        sort(nums.begin(),nums.end());
        vector<bool> used;//设置bool类型数组,以便去重
        used.resize(nums.size(),false);
        backtricking(nums,used);
        return result;
    }
};

http://www.kler.cn/news/355292.html

相关文章:

  • Flink简介及小案例
  • SpringBoot框架下购物推荐网站的设计模式与实现
  • 网络资源模板--Android Studio 实现简易新闻App
  • 10.15.2024刷华为OD C题型(二)
  • 怎么一键下载网页所有图片?3个方法轻松搞定
  • 论文笔记:D-vlog 用于抑郁症检测的多模态数据集
  • 智慧园区能带来哪些便利?
  • 基于SpringBoot+Vue+uniapp微信小程序的婚庆摄影小程序的详细设计和实现(源码+lw+部署文档+讲解等)
  • CentOS 7- 配置阿里镜像源
  • HTML_文本标签
  • MySQL【知识改变命运】05
  • 计数型信号量
  • 【C语言】函数指针
  • 什么是ERP?快速理解ERP系统与ERP软件的区别
  • Python 数值计算与数值分析基础
  • 拿到snp的rawdata后如何使用GATK进行筛选(GATK硬筛选文档翻译)
  • 基于BERT的语义分析实现(论文复现)
  • 51单片机的超声波视力保护仪【proteus仿真+程序+报告+原理图+演示视频】
  • PCL 点云配准-4PCS算法(粗配准)
  • Tbox编译注意问题