47. Permutations II
2016-05-26 21:36
309 查看
class Solution { public: vector<vector<int>> permuteUnique(vector<int>& nums) { vector<vector<int>> ret; if(nums.size()==0) return ret; sort(nums.begin(),nums.end()); do{ ret.push_back(nums); }while(next_permutation(nums.begin(),nums.end())); return ret; } };
class Solution { private: bool next(vector<int>&nums) { if(nums.size()==1) return false; int i=nums.size()-2; int ii=nums.size()-1; while(i>=0&&nums[i]>=nums[ii]) { i--; ii--; } if(i==-1) { reverse(nums.begin(),nums.end()); return false; } int k=nums.size()-1; while(k>=0&&nums[k]<=nums[i]) { k--; } swap(nums[i],nums[k]); reverse(nums.begin()+ii,nums.end()); return true; } public: vector<vector<int>> permuteUnique(vector<int>& nums) { vector<vector<int>> ret; if(nums.size()==0) return ret; if(nums.size()==1) { ret.push_back(nums); return ret; } sort(nums.begin(),nums.end()); do{ ret.push_back(nums); }while(next(nums)); return ret; } };
相关文章推荐
- 手机变为电脑的摄像头,使像素高清起来-使用DroidCam
- 单机版 redis 安装
- java httpclient使用socks5代理(一)创建socks5代理服务
- codeforces 676A Nicholas and Permutation
- Spring AOP propagation七种属性值
- linux基本命令(38)——cal命令
- JamesMusic浅读--------3,欢迎界面。
- 我所理解的TextureCache,SpriteFrameCache,AnimationCache
- 排序算法稳定性
- iOS开发-进阶:沙盒操作与机制
- 个人冲刺——第三天
- WEB APP、HYBRID APP与NATIVE APP的设计差异
- JAVA功能小注释
- java构造方法使用总结(转)
- matlab画甘特图
- 【POI】——获得单元格的值,并转化成字符串
- 单线程爬虫
- Basic Calculator
- Linux下的TCP/IP编程----基础篇
- PHP 算术运算符