日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

栈相关经典题:每日温度

發布時間:2025/6/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 栈相关经典题:每日温度 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? 題目:

? ? ?根據每日氣溫列表,請重新生成一個列表,對應位置的輸入是你需要再等待多久,溫度才會升高超過該日的天數。如果之后都不會升高,請在該位置用?0 來代替。

? ? ?例如,給定一個列表?temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的輸出應該是?[1, 1, 4, 2, 1, 1, 0, 0]。

? ? ?提示:氣溫 列表長度的范圍是?[1, 30000]。每個氣溫的值的均為華氏度,都是在?[30, 100]?范圍內的整數。

?

思路:利用單調棧解題

//單調棧 func dailyTemperatures(T []int) []int {length := len(T)ans := make([]int, length)//棧stack := []int{}for i := 0; i < length; i++ {//當前溫度temperature := T[i]for len(stack) > 0 && temperature > T[stack[len(stack)-1]] {// prevIndex 是棧頂下標prevIndex := stack[len(stack)-1]// stack[:len(stack)-1] 不包括len(stack)-1對應的元素//彈棧 stack = stack[:len(stack)-1]//下標賦值ans[prevIndex] = i - prevIndex}//入棧stack = append(stack, i)}return ans }

每次新元素進棧,需要和棧頂元素進行比較。如果新元素大于棧頂元素,則彈棧,計算出下標。再將新元素和彈棧后的棧頂元素進行比較重復前面操作.如果新元素小于棧頂元素,將新元素入棧。如果小于則直接入棧。

這樣,棧里面的元素是單調的,棧底元素最大。

元素在入棧的時候,需要保存元素在原數組里對應的下標和值。

時間復雜度:O(n)

空間復雜度:O(n)

?

參考地址:https://leetcode-cn.com/problems/daily-temperatures/solution/mei-ri-wen-du-by-leetcode-solution/

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的栈相关经典题:每日温度的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。