【44.全排列Ⅱ】

目录

一、题目描述

二、算法原理

三、代码实现

cpp 复制代码
class Solution {
public:
    vector<vector<int>> ret;
    vector<int> path;
    vector<bool> check;
    vector<vector<int>> permuteUnique(vector<int>& nums) 
    {
        sort(nums.begin(),nums.end());
        int n=nums.size();
        check.resize(n,0);
        dfs(nums);
        return ret;
    }
    void dfs(vector<int>& nums)
    {
        if(path.size()==nums.size())
        {
            ret.push_back(path);
            return;
        }
        int n=nums.size();
        for(int i=0;i<n;i++)
        {
            if(check[i]==false&&(i==0||nums[i]!=nums[i-1]||check[i-1]==true))
            {
                path.push_back(nums[i]);
                check[i]=true;
                dfs(nums);
                //回复现场
                path.pop_back();
                check[i]=false;
            }
        }
    }
相关推荐
体系结构论文研讨会19 分钟前
多项式环及Rq的含义
算法
智驱力人工智能27 分钟前
极端高温下的智慧出行:危险检测与救援
人工智能·算法·安全·行为识别·智能巡航·高温预警·高温监测
森焱森36 分钟前
60 美元玩转 Li-Fi —— 开源 OpenVLC 平台入门(附 BeagleBone Black 驱动简单解析)
c语言·单片机·算法·架构·开源
课堂剪切板1 小时前
ch07 题解
算法·深度优先
科大饭桶3 小时前
数据结构自学Day5--链表知识总结
数据结构·算法·leetcode·链表·c
我爱C编程5 小时前
基于Qlearning强化学习的1DoF机械臂运动控制系统matlab仿真
算法
chao_7895 小时前
CSS表达式——下篇【selenium】
css·python·selenium·算法
chao_7895 小时前
Selenium 自动化实战技巧【selenium】
自动化测试·selenium·算法·自动化
YuTaoShao5 小时前
【LeetCode 热题 100】24. 两两交换链表中的节点——(解法一)迭代+哨兵
java·算法·leetcode·链表
怀旧,5 小时前
【数据结构】8. 二叉树
c语言·数据结构·算法