zoukankan      html  css  js  c++  java
  • 31.Next Permutation

    class Solution {
    public:
        void nextPermutation(vector<int> &num) {
            int i, j, n = num.size();
            for (i = n - 2; i >= 0; --i) {
                if (num[i + 1] > num[i]) {
                    for (j = n - 1; j > i; --j) {
                        if (num[j] > num[i]) break;
                    }
                    swap(num[i], num[j]);
                    reverse(num.begin() + i + 1, num.end());
                    return;
                }
            }
            reverse(num.begin(), num.end());
        }
    };
    
    class Solution {
    public:
        void nextPermutation(vector<int>& nums) {int n = nums.size(), i = n - 2, j = n - 1;
            while (i >= 0 && nums[i] >= nums[i + 1]) --i;
            if (i >= 0) {
                while (nums[j] <= nums[i]) --j;
                swap(nums[i], nums[j]);
            }
            reverse(nums.begin() + i + 1, nums.end());
        }
    };
    
  • 相关阅读:
    POJ
    模板
    HDU
    CodeForces
    CodeForces
    Java
    百度之星2014复赛
    百度之星2014复赛
    转载
    百度之星2014初赛
  • 原文地址:https://www.cnblogs.com/smallredness/p/10673308.html
Copyright © 2011-2022 走看看