题解 | #下一个更大的数(二)#

下一个更大的数(二)

http://www.nowcoder.com/practice/3923970e95b140fdb65e6c00bcda403d

单调栈,由于数组是循环的,则将数组设置为两个自身相加,单调栈中的索引取 i % n 的值以获得补充的数组中的更大的数

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param nums int整型一维数组 
# @return int整型一维数组
#
class Solution:
    def nextBigger(self , nums: List[int]) -> List[int]:
        # write code here
        n = len(nums)
        res = [-1 for _ in range(n)]
        stack = []
        nums = nums * 2
        for i, num in enumerate(nums):
            while stack and nums[stack[-1]] < num:
                j = stack.pop()
                res[j % n] = num
            stack.append(i)
        return res
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务