leetcode Permutations II
来源:互联网 发布:62078端口入侵iphone 编辑:程序博客网 时间:2024/06/18 01:42
Given a collection of numbers that might contain duplicates, return all possible unique permutations.
For example,[1,1,2]
have the following unique permutations:[1,1,2]
, [1,2,1]
, and [2,1,1]
.
采用回溯法,因为当前的元素如果在本次没有被选中,需要在以后被选中。所以这里并不是单纯地将num[i],加入到aresult中。而是swap(num[i],num[left]),然后aresult中加入num[left],之后回溯;
当我们枚举第i个位置的元素时,若要把后面第j个元素和i交换,则先要保证[i…j-1]范围内没有和位置j相同的元素。
class Solution {public: vector<vector<int> > permuteUnique(vector<int> &num) { sort(num.begin(),num.end()); vector<vector<int>> result; vector<int> aresult; sub(result,aresult,num,0); return result; } void sub(vector<vector<int>> &result,vector<int> &aresult,vector<int>&num,int left){ if(left>num.size()) return; if(left==num.size()){ result.push_back(aresult); return; } for(int i=left;i<num.size();i++){ if(i == left || !find(num, left, i, num[i])){ swap(num[left],num[i]); aresult.push_back(num[left]); sub(result,aresult,num,left+1); aresult.pop_back(); swap(num[left],num[i]); } } } bool find(vector<int> &num, int start, int end, int target) { for(int i = start; i < end; i++) if(num[i] == target) return true; return false; }};
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
- WRTNode(MT7620) 通过USB启动OpenWRT过程记录(下)
- Lua语言基础入门
- C++静态成员变量为什么在类外部定义?
- FPGA的配置方式PS——Passive serial
- IO流基础(字符流)
- leetcode Permutations II
- 滑动菜单栏(一)开源项目SlidingMenu的使用
- openstack介绍
- javascript数组以符号合并成字符串join、以符号分割字符串成数组split
- 批量列出指定文件夹下的特定格式的图像名
- 黑马程序员——OC学习总结9-13
- 存储、中断、总线及输入输出系统
- 计组汇编实验:交通灯设计实验
- 什么是Web dnpro以及自己的感悟