关于单调栈的使用

表现良好的最长时间段--这道题的关键就是前缀和,以及单调栈。前缀和意思是说如果大于8就是1否则就是-1,这样可以形成新的数组,然后新的数组中如果两个数中后面的数大于前面则这个区间就是有效区间。求有效区间的最大值,使用单调栈,先遍历这个数组获取递减值,然后反向遍历数组,和单调栈pop()出来的元素进行比对,并要注意i的相对大小。这用到的关键思想就是递减区间中一定包含最小值。

每日温度也用到了单调栈,这道题核心就是保存一个递减栈,每次pop()出来的元素都比pop()出来后peek()的元素小,这样能减少比对次数

你可能感兴趣的:(leetcode,算法)