下一个排列
2015-09-16 23:15
246 查看
给定一个整数数组来表示排列,找出其之后的一个排列。
样例
给出排列
给出排列
注意
排列中可能包含重复的整数
样例
给出排列
[1,3,2,3],其下一个排列是
[1,3,3,2]
给出排列
[4,3,2,1],其下一个排列是
[1,2,3,4]
注意
排列中可能包含重复的整数
class Solution { public: /** * @param nums: An array of integers * @return: An array of integers that's next permuation */ vector<int> nextPermutation(vector<int> &nums) { // write your code here int n = nums.size(); int i = n-1; for (; i > 0; i--) { if (nums[i] > nums[i-1]) { int j = n-1; for (; j >= i; j--) { if (nums[j] > nums[i-1]) { break; } } swap(nums[i-1], nums[j]); int left = i; int right = n-1; while (left < right) { swap(nums[left], nums[right]); left++; right--; } break; } } if (i == 0) { int left = 0; int right = n-1; while (left < right) { swap(nums[left], nums[right]); left++; right--; } } return nums; } };
相关文章推荐
- nyoj--20-吝啬的国度
- 从文件读对象到ArrayList
- 腾讯2016校招面试经验分享(一面)
- 抽象方法与抽象类
- Visio二次开发(一)----巧用Visio宏
- css 盒模型详解
- HDOJ1717 小数化分数2(模拟)
- 条款29:为异常安全而努力值得的(Striving exception safety)----略
- [8-01]html常用标签
- Opencv腐蚀与膨胀-滚动条
- Ubuntu14.04下安装Caffe总结
- Kafka架构
- Node.js中的URL模块
- 展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告
- Nginx 负载均衡-加权轮询策略剖析
- hiho 1050 树中的最长路 (树的直径)
- createjs-打豆豆小游戏制作(3)
- SQL语法
- Java中数组中的clone()方法
- 自学数据挖掘