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