Answers for "31. Next Permutation leetcode solution in c++"

C++
0

31. Next Permutation leetcode solution in c++

class Solution {
public:
    void nextPermutation(vector<int>& nums) {
        int n=nums.size()-1;
        bool flag=false;
        for(int i=0;i<n;i++)
        {
            if(nums[i]<nums[i+1])
            {
                flag=true;
                break;
            }
        }
        //check
        if(flag)
        {
            int k;
            for(int i=n-1;i>=0;i--)
            {
                if(nums[i]<nums[i+1])
                {
                    k=i;
                    break;
                }
            }
            int j;
            for(int i=n;i>k;i--)
            {
                if(nums[i]>nums[k])
                {
                    j=i;
                    break;
                }
            }
            swap(nums[k],nums[j]);
            reverse(nums.begin()+k+1,nums.end());
        }else
        {
            reverse(nums.begin(),nums.end());
        }
    }
};
Posted by: Guest on April-04-2022

Code answers related to "31. Next Permutation leetcode solution in c++"

Browse Popular Code Answers by Language