leetcode思路简述(31-60)

31. 首先找到从右边起第一对升序的数对(a[i1] < a[i]),此时a[i1]右侧的排列是一个最大排列(因为已经是降序了)。找到a[i-1]右起第一个比它大的数a[j],将它交换位置。相当于找到右边比原a[i-1]刚好大一点的数。再翻转a[i-1]右侧的数的顺序(不包括自己),也就是降序变升序。

关键要想到降序的意义,代表了不存在更大的排列。而对于这种情况,要“进位”并将这部分变为最小(升序)。

32.

猜你喜欢

转载自www.cnblogs.com/sumuyi/p/12484132.html