leetcode 907. Sum of Subarray Minimums | 907. 子数组的最小值之和(单调栈)
生活随笔
收集整理的這篇文章主要介紹了
leetcode 907. Sum of Subarray Minimums | 907. 子数组的最小值之和(单调栈)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目
https://leetcode.com/problems/sum-of-subarray-minimums/
題解
單調(diào)棧問題。參考左神算法課:https://ke.qq.com/webcourse/3067253/103187834#taid=10646309101817205&vid=5285890813430715450
相當(dāng)于找當(dāng)前元素屬于哪些子序列的最小值,如下圖,以 10 位置的 7 為例,它可以是以下標(biāo) 6~10 任意一個(gè)作為開始,到下標(biāo) 10~14 任意一個(gè)作為結(jié)束的所有 5*5=25 個(gè)子數(shù)組的最小值,所以,以 7 為最小值的 subarray sum = 5*5*7。
需要注意的是出現(xiàn)相等數(shù)字時(shí)候的情況,具體表現(xiàn)為當(dāng)遇到相等數(shù)字時(shí),不重復(fù)計(jì)算即可。可以聽左神講的,也可以自己畫一下,試一下就懂了。
總結(jié)
以上是生活随笔為你收集整理的leetcode 907. Sum of Subarray Minimums | 907. 子数组的最小值之和(单调栈)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode 622. Design
- 下一篇: leetcode 636. Exclus