题目描述
方法:
从后往前比较
与之前最小但是大于自己的交换
交换后之后的数后面为降序,改为升序
class Solution:
def nextPermutation(self, nums: List[int]) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
n = len(nums)
i = n-1
while i > 0 and nums[i] <= nums[i-1]:
i -= 1
i = i - 1
if i >= 0:
j = n - 1
while j > i and nums[j] <= nums[i]:
j -= 1
nums[i], nums[j] = nums[j], nums[i]
left = i + 1
right = n - 1
while left < right:
nums[left], nums[right] = nums[right], nums[left]
left += 1
right -= 1