题解 | #牛群的编号重排#

牛群的编号重排

https://www.nowcoder.com/practice/220a216469c14a52b4eb6709e041feb1

题目考察的知识点是:

本题考察的是排序。

题目解答方法的文字分析:

该题目难点在于理解,我们如何找到下一个字典序更小的排列,首先我们需要知道,下一个字典序更小的数字是什么,如何才能让一个数字的排列更小。

本题解析所用的编程语言:

java语言。

完整且正确的编程代码:

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param cows int整型一维数组
     * @return int整型一维数组
     */
    public int[] nextPermutation (int[] cows) {
        // write code here
       int i= cows.length-2;
        while(i>=0&&cows[i]<=cows[i+1]){
            i--;
        }
        if (i>=0){
            int j=cows.length-1;
            while(j>=0&&cows[i]<=cows[j]){
                j--;
            }
            swap(cows,i,j);
        }
        reverse(cows,i+1,cows.length-1);
        return cows;
    }
    
    public void swap(int[] nums,int left,int right){
        int temp=nums[left];
        nums[left]=nums[right];
        nums[right]=temp;
    }
    
    public void reverse(int[] nums,int l,int r){
        while(l<r){
            swap(nums,l,r);
            l++;
            r--;
        }
    }

}

#题解#
全部评论

相关推荐

挣K存W养DOG:他真的很中意你,为什么不回他
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务