题解 | #牛群的编号重排#
牛群的编号重排
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--; } } }#题解#