力扣hot100 739 每日溫度

2021-10-13 05:28:05 字數 712 閱讀 3921

題目描述:

請根據每日 氣溫 列表,重新生成乙個列表。對應位置的輸出為:要想觀測到更高的氣溫,至少需要等待的天數。如果氣溫在這之後都不會公升高,請在該位置用 0 來代替。

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

解題思路:

1、首先看到這一題最常想到的就是兩個遍歷,首先從vector的第乙個數開始,找到其後面第乙個大於它的數字,並返回他們之間的距離到res陣列中。再一次遍歷第二個第三個。很明顯這是暴力法,超時。

**如下:

class

solution}}

return res;}}

;

2、利用棧進行求解。

維護乙個遞減棧,為什麼是遞減棧呢,因為遞減就表示當前的元素沒有找到後面比他大的值,如果找到的話,就直接出棧,並寫入下標到res陣列中。**如下:

**如下:

class

solution

s.push

(i);

//每一次都要將值入棧,因為如果當前值不滿足遞減棧,就會符合上面的條件,如果滿足,就直接入棧

}return res;}}

;

力扣 739 每日溫度

給定乙個整數陣列 temperatures 表示每天的溫度,返回乙個陣列 answer 其中 answer i 是指在第 i 天之後,才會有更高的溫度。如果氣溫在這之後都不會公升高,請在該位置用 0 來代替。示例 1 輸入 temperatures 73,74,75,71,69,72,76,73 輸...

leetcode力扣中等難度 每日溫度 739題

根據每日 氣溫 列表,請重新生成乙個列表,對應位置的輸出是需要再等待多久溫度才會公升高超過該日的天數。如果之後都不會公升高,請在該位置用 0 來代替。例如,給定乙個列表 temperatures 73,74,75,71,69,72,76,73 你的輸出應該是 1,1,4,2,1,1,0,0 var ...

力扣LeetCode 739題 每日溫度(單調棧)

題目 分析 題目的意思應該叫做 對於陣列的每乙個元素,尋找下乙個比他大的元素與他的距離 例如對於 73 下標為 0 下乙個比他大的元素為 74 下標為 1 那麼就填入 1 0 1 以此類推。直接能夠想到的方法就是暴力遍歷,對於每乙個元素向後遍歷 class solution 跳出之後沒超範圍,說明是...