Leetcode-单调栈

单调栈适用于当你需要高效率的查询某个位置左右两侧比他大或小的数的位置
1.买卖股票的最佳时间:

维护单调栈的思路:
  在 pricespricesprices 数组的末尾加上一个 哨兵‍✈️(也就是一个很小的元素,这里设为 0)),就相当于作为股市收盘的标记(后面就清楚他的作用了)
  假如栈空或者入栈元素大于栈顶元素,直接入栈
  假如入栈元素小于栈顶元素则循环弹栈,直到入栈元素大于栈顶元素或者栈空
  在每次弹出的时候,我们拿他与买入的值(也就是栈底)做差,维护一个最大值。

你可能感兴趣的:(Leetcode)