Leetcode 1856. Maximum Subarray Min-Product [Python]
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 1856. Maximum Subarray Min-Product [Python]
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一道奇怪的題目,用單調(diào)棧。
遍歷array中的元素,然后對(duì)比棧頂?shù)臄?shù)字,
如果比棧頂?shù)拇?#xff0c;入棧。
如果比棧頂?shù)男?#xff0c;棧頂元素出棧。
此時(shí),被從棧頂元素開始往回看,因?yàn)槭菃握{(diào)上升的單調(diào)棧,其之后的元素一定小于棧頂這個(gè)元素。于是,每次彈出的元素,都是原本棧頂元素對(duì)應(yīng)的位置往回遍歷到當(dāng)前棧頂元素中的最小值。于是,我們可以更新此時(shí)的susbarry的計(jì)算值。我們還需要注意的是,每次遍歷到的值入棧,我們都入棧這個(gè)值,以及這個(gè)值往回看,作為最小值可以到達(dá)的最左側(cè)的位置。也就是這個(gè)值為最小值的subarray的最左側(cè)起始位置。
總結(jié)
以上是生活随笔為你收集整理的Leetcode 1856. Maximum Subarray Min-Product [Python]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: error setting certif
- 下一篇: python matplotlib,pl