31.下一个排列

我的解法

比较朴素的想法,根据全排列的定义,从nums尾部开始寻找递减序列(递减序列本身是不存在下一个序列的),如果整个nums就是一个递减序列,那么进行重新排序;否则,假设递减序列的前一个数字为a,找到nums中大于a的最小数,与a换位,然后对a后的序列重新排序。

官方解法

法1:两遍扫描,就是我的方法,官方题解讲得更清晰一些。优化点是既然后面的序列本身就是递减序列了,直接双指针反转就可以。

知识点

全排列

posted @ 2025-03-10 17:24  知白0212  阅读(11)  评论(0)    收藏  举报