对一个数组进行字典序排序。
例如:1,2,3 → 1,3,2 3,2,1 → 1,2,3 1,1,5 → 1,5,1
字典序 不懂的可以找下百度百科。
有个通俗的理解就是,从低位往高位找,找到比低位大的元素则相互替换,然后对低位后面的元素进行排序,找不到就只对数组进行排序即可。
class Solution { public void nextPermutation(int[] nums) { //数组 for(int i =nums.length-2;i>=0;i--){ //倒序遍历 for(int j =nums.length-1;j>i;j--){ if(nums[j]>nums[i]){ int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; Arrays.sort(nums,i+1,nums.length); return; //找到立即返回 } } } Arrays.sort(nums); }}