首页 > 其他 > 详细

滑动窗口最大值;栈的最小值;

时间:2021-02-15 09:57:24      阅读:26      评论:0      收藏:0      [点我收藏+]

https://leetcode-cn.com/problems/hua-dong-chuang-kou-de-zui-da-zhi-lcof/

https://leetcode-cn.com/problems/min-stack-lcci/

1. 这两题都是要在O(1)时间内得到当前栈内的最小值 或 滑动窗口的最大值;

2. 维护最小栈和双端队列的pop()方法相同,都是判断 出栈元素 是否等于 最小栈栈顶元素 或 窗口左边元素 是否等于 双端队列左边元素;

3. 但是维护最小栈和双向队列的最大值的push方法不同;

  1) 单减 最小栈  —— 在栈顶取最小元素

    if x<stack_min[ -1 ]: stack_min.append(x)

  2) 单减 双端队列 —— 在左侧取最大元素

    while x>deuqe[-1]:

      deque.pop()

    deque.append(x)

  

 

滑动窗口最大值;栈的最小值;

原文:https://www.cnblogs.com/ChevisZhang/p/14401560.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!