#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param cows int整型一维数组
# @return int整型一维数组
#
class Solution:
def nextPermutation(self , cows: List[int]) -> List[int]:
# write code here
n = len(cows)
for i in range(n-1):
if cows[n-1-i]<cows[n-i-2]:
t = cows[n-i-1]
cows[n-i-1]=cows[n-i-2]
cows[n-i-2]=t #到这一步找到了罪魁祸首的值,但是调换了以后没有变成最近邻的
例如:9,8,3,2,4此时变成了9,8,2,3,4。正确答案是
9,8,2,4,3,故其实是要把后面的一部分倒序输出
return cows[0:-i-1]+cows[-1:-i-2:-1] #前面一部分正序输出,后面一部分倒序输出
return cows[::-1] #对于本来就最小的,直接倒序就好啦
# for j in range(i):
# dfs(cows,j)