Next Permutation问题及解法
来源:互联网 发布:优胜网络在线教育 编辑:程序博客网 时间:2024/09/21 09:23
问题描述:
Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers.
If such arrangement is not possible, it must rearrange it as the lowest possible order (ie, sorted in ascending order).
The replacement must be in-place, do not allocate extra memory.
示例:Here are some examples. Inputs are in the left-hand column and its corresponding outputs are in the right-hand column.1,2,3
→ 1,3,2
3,2,1
→ 1,2,3
1,1,5
→ 1,5,1
问题分析:
本题题意理解起来可能比较难,其实主要意思是求解一个数组的下一个全排列,详细过程可参考一下http://blog.csdn.net/qq575787460/article/details/41215475文章的讲解。
过程详见代码:
class Solution {public: void nextPermutation(vector<int>& nums) { if(nums.empty()) return; int len = nums.size(); int i = len - 1; for(;i > 0; i--) { if(nums[i] > nums[i-1]) { for(int j = len - 1; j >= i; j--) { if(nums[j] > nums[i-1]) { swap(nums[i-1],nums[j]); break;} } sort(nums.begin() + i,nums.end()); break;}}if(i==0) sort(nums.begin(),nums.end()); }};
阅读全文
0 0
- Next Permutation问题及解法
- Permutation Sequence问题及解法
- 【LeetCode】31. Next Permutation解法
- Permutation in String问题及解法
- Next Greater Element I问题及解法
- Next Closest Time问题及解法
- 算法<Next Permutation问题>
- LeetCode31. Next Permutation最清晰的解法
- Populating Next Right Pointers in Each Node问题及解法
- leetcode 题解 || Next Permutation 问题
- Leetcode之Next Permutation 问题
- next-permutation原理及及运用
- c语言解决the next permutation 问题
- [LeetCode]Next Permutation下一个排列问题
- 【leetcode 排列组合问题】Next Permutation | Permutations | Permutations II | Permutation Sequence
- Next Permutation
- Next Permutation
- Next Permutation
- mysql之TIMESTAMP(时间戳)用法详解
- led_classdev_register 和 device_register的关系
- 【TCP/IP】(二)、TCP/IP基础知识
- Android ViewDragHelper源码解析
- Sublime Text3通过Python运行程序
- Next Permutation问题及解法
- Vue之计算属性Computed
- Redis 学习笔记(十四)Redis Cluster介绍与搭建
- 一个自制的小游戏
- Centos yum安装php+mysql(mariadb)+httpd(apache)环境
- ctrl+c,ctrl+d,ctrl+z在linux程序中意义和区别
- 社群运营:从100个社群中选出有特色的8个分享给你
- linux下配置,启动多个tomcat
- NYOJ-1058- 部分和问题(DFS)