
解法1: 模拟用代码模拟我们处理问题的思路思维from typing import List class Solution: def nextPermutation(self, nums: List[int]) - None: Do not return anything, modify nums in-place instead. # 其实就是一个常规的模拟题通过代码模拟我们的思路思维 n len(nums) i n - 2 # 第一步找到第一个 nums[i] nums[i1] 的位置同时所有i后面的都是降序 while i 0 and nums[i] nums[i1]: i -1 # 第二步从右往左找到第一个nums[j] nums[i] j n-1 if i 0: # 第一步成立 while j i : if nums[j] nums[i]: nums[j],nums[i] nums[i],nums[j] break j -1 # 第三步: 反转i1及其后面的序列 start,end i1,n-1 while end start: nums[start],nums[end] nums[end],nums[start] end -1 start 1