代码随想录算法训练营第五十八天 |739. 每日温度、496. 下一个更大元素 I

单调栈:

通常是一维数组,要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置,此时我们就要想到可以用单调栈了

739. 每日温度

题目链接:739. 每日温度

  • 3种情况讨论,比栈顶大,比栈顶小或者等于

496. 下一个更大元素 I

题目链接:496. 下一个更大元素 I

  • 递增栈是从栈头到栈底递增

  • 这里需要2中元素在1中的映射

  • <pre class="md-fences md-end-block md-fences-with-lineno ty-contain-cm modeLoaded" spellcheck="false" lang="c++" cid="n64" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace; margin-top: 0px; margin-bottom: 20px; font-size: 0.9rem; display: block; break-inside: avoid; text-align: left; white-space: normal; background-color: rgb(51, 51, 51); position: relative !important; padding: 10px 10px 10px 0px; width: inherit;"> while(!st.empty() && st.top() < nums2[i]){
    if (umap.count(st.top()) > 0) { // 需要这个判断否则2中出现了1中没有的数会出问题
    res[umap[st.top()]] = nums2[i];
    }
    st.pop();
    }</pre>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容