Next Permutation (LC-0031)
class Solution:
def nextPermutation(self, nums):
N = len(nums)
if N < 2:
return nums
lx = None
for ix in range(N - 2, -1, -1):
if nums[ix] < nums[1 + ix]:
lx = ix
break
if lx == None:
nums.sort()
return
for ix in range(N - 1, lx, -1):
if nums[ix] > nums[lx]:
nums[lx], nums[ix] = nums[ix], nums[lx]
nums[1 + lx::] = sorted(nums[1 + lx::])
break
return nums