Skip to content

Latest commit

 

History

History
 
 

031.Next-Permutation

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

031.Next-Permutation

首先,如果已经是完全降序的序列,它是没有next permuation的。此时输出重新按升序排列的数组。

接下来,我们从后往前遍历,当第一次出现nums[i]<nums[j], i<j的时候,说明我们可以在不改变i之前的元素的前提下,通过提升nums[i]来得到next permutation. 其他任何比i靠后的位置,我们都无法做到提升nums[i]的同时保持字典序变大。因为比nums[i]大的数字在i之前,你挪用过来的话反而会使字典序减小。

所以找到i之后,我们在[i+1,n-1]的里面找一个刚刚比nums[i]大的元素替代nums[i],使得整体的字典序提升。之后[i+1:n-1]就按照剩余的元素升序排列即可。