题目:原题链接(中等)
标签:数组
解法  | 时间复杂度  | 空间复杂度  | 执行用时  | 
Ans 1 (Python)  | O ( N )  | O ( 1 )  | 36ms (89.30%)  | 
Ans 2 (Python)  | |||
Ans 3 (Python)  | 
解法一:
class Solution:
    def nextPermutation(self, nums: List[int]) -> None:
        i1, i2 = -1, -1
        for i in range(len(nums) - 1):
            # 处理递增的情况
            if nums[i] < nums[i + 1]:
                i1, i2 = i, i + 1
            # 处理递减的情况
            elif i1 == -1 or nums[i + 1] > nums[i1]:
                i2 = i + 1
        # 处理完全单调递减的情况
        if i1 == -1:
            i1, i2 = 0, len(nums) - 1
            while i1 <= i2:
                nums[i1], nums[i2] = nums[i2], nums[i1]
                i1, i2 = i1 + 1, i2 - 1
        # 处理不完全单调递减的情况
        else:
            # 交换最后一个递增和递减中最小的值
            nums[i1], nums[i2] = nums[i2], nums[i1]
            # 交换递减中的值
            i1, i2 = i1 + 1, len(nums) - 1
            while i1 <= i2:
                nums[i1], nums[i2] = nums[i2], nums[i1]
                i1, i2 = i1 + 1, i2 - 1









