【Day7 中高難度算法挑戰(zhàn)】股票價格跨度
介紹
總而言之是時候利用暑假鍛煉一下算法技術(shù),一提算法面試就面露難色的情形總不能一直持續(xù)下去。本欄目面向有一定基礎(chǔ)的編程愛好者,每天(如果up不鴿)分享并解析一道LeetCode中高難度題目(通常是hard)。有興趣的小伙伴可以一起跟著做并且討論解法。目前的教材是花花醬的Leetcode Problem List【1】.
適合人群:
有一定算法基礎(chǔ),但是還未能順利通過筆試/面試,總覺得算法題目想不明白的你。
不適合人群:
算法入門級選手(一上來就做難題可能并不合適,建議首先專注簡單/中等題目)
非常不適合人群:
算法競賽選手(這種小兒科的問題完全是在浪費您的時間)
過往題目在這里!

股票價格跨度
題目看這里,leetcode第九零一題,meduim難度:
https://leetcode.com/problems/online-stock-span/
強烈建議讀者自己先做(不過真的會有讀者嗎,笑),有任何問題歡迎在評論區(qū)討論,up看到了會及時回復(fù)。做完了歡迎在評論區(qū)打卡~
解析
今天是第一道真正意義上的中等難度題目,本題巧妙的地方在于,用最小棧保存比當(dāng)前價格小的元素的數(shù)目,這樣之后新來的輸入就只需要和最小棧里的值比較,不需要把所有歷史價格。這也可以看作是一種動態(tài)規(guī)劃。

思考樂園
當(dāng)next函數(shù)第一次被調(diào)用時會發(fā)生什么?為什么不用特別處理?歡迎把答案寫在評論區(qū)。
音樂推薦
唔,所以說發(fā)生了什么呢?我這幾天做四星難度的題無一例外全都卡住,沒有一道題順利解出來的,甚至連答案都看不懂(或者說太復(fù)雜了根本不想看)。那么對我來說四星難度是不是還是太大?而且我有種感覺,四星以上的題目做法不見得普適,有的甚至毫無套路可言。想又想不明白,背答案又沒有意義,真是無法可想了。什么?你問我面試如果問這種問題怎么辦?開擺!問這種難題該不會是本來也不想招人吧。這首來自折原露露的人生態(tài)度送給同樣想在舒適區(qū)里待到天荒地老的你。
教材鏈接
【1】https://zxi.mytechroad.com/blog/leetcode-problem-categories/