比较朴素的想法,根据全排列的定义,从nums尾部开始寻找递减序列(递减序列本身是不存在下一个序列的),如果整个nums就是一个递减序列,那么进行重新排序;否则,假设递减序列的前一个数字为a,找到nums中大于a的最小数,与a换位,然后对a后的序列重新排序。
法1:两遍扫描,就是我的方法,官方题解讲得更清晰一些。优化点是既然后面的序列本身就是递减序列了,直接双指针反转就可以。
全排列