题解 | #牛群的编号重排#

牛群的编号重排

https://www.nowcoder.com/practice/220a216469c14a52b4eb6709e041feb1

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

全部评论

相关推荐

牛客83265014...:完了,连现在都没开始面,13号投的是不是晚了
秋招的第一个offer,...
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务