【LeetCode】Permutations II
来源:互联网 发布:搪瓷 知乎 编辑:程序博客网 时间:2024/06/04 17:42
Question
Tips
Still the backtracking
Source Code
class Solution {public: void BT(int d,vector<int> &nums){ if(d==nums.size()){ vector<int> t; for(int i=0;i<tmp.size();++i) t.push_back(nums[tmp[i]]); res.push_back(t); return; } int rec=nums[nums.size()-1]+1; //rec is not in nums for(int i=0;i<nums.size();++i){ bool flag=true; //flag that means nums[i] is int tmp or not for(int j=0;j<d;++j) if(i==tmp[j]){ flag=false; break; } if(flag==false || rec==nums[i]) continue; rec=nums[i]; //Record the number now , duplicate the next same number tmp.push_back(i); BT(d+1,nums); tmp.erase(tmp.end()-1,tmp.end()); } } vector<vector<int> > permuteUnique(vector<int>& nums) { tmp.clear(); res.clear(); sort(nums.begin(),nums.end()); for(int i=0;i<nums.size();++i){ if(i>0 && nums[i]==nums[i-1]) continue; tmp.push_back(i); BT(1,nums); tmp.erase(tmp.end()-1,tmp.end()); } return res; }private: vector<int> tmp; vector<vector<int> > res;};
0 0
- 【LeetCode】Permutations && Permutations II
- leetcode: Permutations/Permutations II
- leetcode Permutations & Permutations II
- [Leetcode]Permutations && Permutations II
- Leetcode: Permutations and Permutations II
- leetcode-permutations and permutations II
- Leetcode:Permutations与Permutations II
- LeetCode: Permutations II
- LeetCode Permutations II
- LeetCode: Permutations II
- [Leetcode] Permutations II
- [LeetCode] Permutations II
- [Leetcode] Permutations II
- leetcode Permutations II
- [LeetCode]Permutations II
- leetcode - Permutations II
- LeetCode-Permutations II
- [leetcode] Permutations II
- 测试
- 我走的弯路
- poj 1273 Drainage Ditches
- C#获取当前日期时间
- 深刻理解套接字
- 【LeetCode】Permutations II
- TCP/IP详解学习笔记(6)-TCP协议概述
- Linux 下安装 nginx 并且平滑升级nginx
- 【问题处理】Icon.png pngcrush caught libpng error:Read Error
- qt正则表达式应用于文本文件分割[同时识别逗号分割符和空格等]
- Ruby中的字符串操作
- Boost库之function的使用
- 采用文件拷贝的方式配置android开发环境
- hdu 1542 Atlantis 线段树 + 扫描线