博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
52.下一个排列
阅读量:6238 次
发布时间:2019-06-22

本文共 656 字,大约阅读时间需要 2 分钟。

 

给定一个整数数组来表示排列,找出其之后的一个排列。

注意事项

排列中可能包含重复的整数

样例

给出排列[1,3,2,3],其下一个排列是[1,3,3,2]

给出排列[4,3,2,1],其下一个排列是[1,2,3,4]

标签

排列 LintCode 版权所有

思路

从后往前找,找到第一对(i,j),使得 nums[i] < num[j] ,然后将两者交换后,后面部分排序即可。

code

class Solution {public:    /**     * @param nums: An array of integers     * @return: An array of integers that's next permuation     */    vector
nextPermutation(vector
&nums) { // write your code here int size = nums.size(), i = 0, j = 0; if(size == 0) { return vector
(); } for(i=size-1; i>=0; i--) { for(j=size-1; j>i; j--) { if(nums[i]

转载于:https://www.cnblogs.com/kanekiken/p/8024769.html

你可能感兴趣的文章