#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @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)