lintcode 下一个排列

作者: yzawyx0220 | 来源:发表于2016-12-30 09:42 被阅读53次

给定一个整数数组来表示排列,找出其之后的一个排列。
样例
给出排列[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
        for (int i = nums.size()-1;i >= 0;i--) {
            for (int j = nums.size()-1;j > i;j--) {
                if (nums[j] > nums[i]) {
                    swap(nums[j],nums[i]);
                    reverse(nums.begin()+i+1,nums.end());
                    return nums;
                }
            }
        }
        reverse(nums.begin(),nums.end());
        return nums;
    }
};

相关文章

  • lintcode 下一个排列

    给定一个整数数组来表示排列,找出其之后的一个排列。样例给出排列[1,3,2,3],其下一个排列是[1,3,3,2]...

  • lintcode 全排列

    给定一个数字列表,返回其所有可能的排列,第十五题是没有重复的数字,是十六题是有重复的数字。先来说没有重复数字的情况...

  • 全排列系列总结

    一. 找到下一个全排列 这是给定一个排列,找它的下一个全排列 给出一个数字排列中按字典序排列的下一个更大的排列。如...

  • 全排列 (lintcode:permutations)

    给定一个数字列表,返回其所有可能的排列。假设没有重复数字。样例:给出一个列表[1,2,3],其全排列为: 代码: ...

  • lintcode 15 全排列

    递归算法思路:对数据[1,2,3],需要一次遍历;每次遍历,确定首位,[1,...];[2,...];[3,......

  • LeetCode 31. 下一个排列 | Python

    31. 下一个排列 题目 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如...

  • 31. 下一个排列

    31. 下一个排列 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存...

  • 31-下一个排列

    下一个排列 题目 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在...

  • LeetCode每日一题: 31. 下一个排列

    31. 下一个排列 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在...

  • 31. 下一个排列

    实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则...

网友评论

    本文标题:lintcode 下一个排列

    本文链接:https://www.haomeiwen.com/subject/uiqmvttx.html