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

47. 全排列 II

题目:47. Permutations II
类型:深搜
难度:中等
星级:五星推荐

版本1

不同的题但是可以用同一个代码解
可能这就是标准库函数的魅力吧

class Solution{public:vector<vector<int>>permuteUnique(vector<int>&nums){vector<vector<int>>res;sort(nums.begin(),nums.end());do{res.push_back(nums);}while(next_permutation(nums.begin(),nums.end()));returnres;}};

版本2

DFS
考虑每个数放哪个位置
如果有重复的元素必须要放在相同元素的后面,这样就保证了重复元素不会重复输出

class Solution{public:vector<vector<int>>res;vector<int>path;vector<bool>st;intn;vector<vector<int>>permuteUnique(vector<int>&nums){n=nums.size();st.resize(n);path.resize(n);sort(nums.begin(),nums.end());dfs(nums,0,0);returnres;}voiddfs(vector<int>&nums,intu,intstart){if(u==n){res.push_back(path);return;}for(inti=start;i<n;i++){if(!st[i]){st[i]=true;path[i]=nums[u];dfs(nums,u+1,u+1<n&&nums[u+1]==nums[u]?i+1:0);st[i]=false;}}}};

版本3

2020.3.30

classSolution{public:vector<vector<int>>res;vector<int>temp;vector<bool>st;intn;vector<vector<int>>permuteUnique(vector<int>&nums){n=nums.size();st.resize(n);temp.resize(n);sort(nums.begin(),nums.end());dfs(nums,0,0);//start 用来确保相对顺序returnres;}voiddfs(vector<int>&nums,intu,intstart){if(u==n){res.push_back(temp);return;}for(inti=start;i<n;i++){if(!st[i]){st[i]=true;temp[i]=nums[u];dfs(nums,u+1,(u+1<n&&nums[u]==nums[u+1])?i+1:0);//相对顺序st[i]=false;}}}};
http://www.jsqmd.com/news/1282178/

相关文章:

  • 山西瞪羚企业申报全解析:吃透申报要点,专业赋能企业冲刺认定 - 资讯在线
  • 这个简易警报电路能够工作吗?
  • 深圳夏令营:军博营地专业严谨 - 17328623207
  • 全国武校家长口碑排名,圣龙武术学校真实评价 - 圣龙武术朱老师
  • [LeetCode]303. Range Sum Query - Immutable ★
  • 中山夏令营:军博营地效果突出 - 17728181569
  • PAT-1041(乙级)
  • 2026重庆綦江管道疏通防坑指南:利扬师傅教你避开隐形收费 - 余生黄金回收
  • 关于MySQL多表关联时过滤条件的位置
  • python 类中的递归函数使用
  • Hibernate一对多关系
  • 斐波那契数列的实现
  • Jetson Nano视觉数据增强实战:平衡效果与计算开销的边缘优化方案
  • 2026重庆合川管道疏通避坑指南 邻里帮师傅真实测评 - 余生黄金回收
  • 深圳夏令营:军博营地典范 - 17728098551
  • 最后窗口期!2024Q3前未掌握AI办公链路的职场人,将错过晋升关键分水岭
  • 高效管理PS1游戏存档:MemcardRex完整使用指南
  • Godot着色器基础
  • 【单片机毕业设计推荐】 基于 51/STM32 单片机的智能感应台灯控制系统设计与实现,基于 51/STM32 单片机的蓝牙可控人体感应调光台灯设计(011904)
  • matplotlib入门 ----plot()函数
  • 传统图像处理算法总结
  • 【干货】前端进阶应该知道的这些调试方法
  • 3天学完linux基础-----第二天
  • NBM7100A与PIC18F56K42实现超低功耗物联网设备设计
  • 简单总结面向对象
  • 【自然语言处理】
  • 大模型应用的安全红线:从Prompt注入到数据泄露的防护清单
  • Web测试经验分享
  • java学习(87):Interage包装类进制转换
  • 《php面向对象》第28课:封装复杂的MVC-配置文件