leetcode刷题_下一个排列

题目描述

在这里插入图片描述
在这里插入图片描述

参照的解题思路

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Java解题方法

import java.util.Arrays;
class Solution {
    
    
    public void nextPermutation(int[] nums) {
    
    
        int len = nums.length;
        if(len == 1)
        {
    
    
            return;
        }
        int i = len - 1;
        int j = i - 1;
        while(i > 0)
        {
    
    
            if(nums[j] < nums[i])
            {
    
    
                break;
            }
            else
            {
    
    
                i--;
                j--;
            }
        }
        if(j < 0)
        {
    
    
            Arrays.sort(nums);
            return;
        }

        int k = len - 1;
        while(k > j)
        {
    
    
            if(nums[k] > nums[j])
            {
    
    
                int tmp;
                tmp = nums[k];
                nums[k] = nums[j];
                nums[j] = tmp;
                break;
            }
            else
            {
    
    
                k--;
            }
        }
        Arrays.sort(nums,i,len);
    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42148307/article/details/120140989