給定乙個整數陣列 temperatures ,表示每天的溫度,返回乙個陣列 answer ,其中 answer[i] 是指在第 i 天之後,才會有更高的溫度。如果氣溫在這之後都不會公升高,請在該位置用 0 來代替。
示例 1:
輸入: temperatures = [73,74,75,71,69,72,76,73]
輸出: [1,1,4,2,1,1,0,0]
1/**2temperatures = [71,72,73,71]34
單調棧 , 單調遞減棧 ,存入陣列下標5*/
6int* dailytemperatures(int* temperatures, int temperaturessize, int*returnsize)
11int *res =(int *)malloc(sizeof(int) * (temperaturessize + 1
));12 memset(res, 0, sizeof(int) * (temperaturessize + 1
));13
14int *stack =(int *)malloc(sizeof(int) * (temperaturessize + 1
));15 memset(stack, 0, sizeof(int) * (temperaturessize + 1
));16
17int top = 0;18
19for(int i = 0; i < temperaturessize; i++)
24 stack[top] =i;
25 top++;26}
27while(top > 0)31
return
res;
32 }
LeetCode 739 每日溫度
根據每日 氣溫 列表,請重新生成乙個列表,對應位置的輸入是你需要再等待多久溫度才會公升高的天數。如果之後都不會公升高,請輸入 0 來代替。例如,給定乙個列表 temperatures 73,74,75,71,69,72,76,73 你的輸出應該是 1,1,4,2,1,1,0,0 static con...
LeetCode 739 每日溫度
根據每日 氣溫 列表,請重新生成乙個列表,對應位置的輸入是你需要再等待多久溫度才會公升高的天數。如果之後都不會公升高,請輸入 0 來代替。例如,給定乙個列表 temperatures 73,74,75,71,69,72,76,73 你的輸出應該是 1,1,4,2,1,1,0,0 從後一天往前一天推,...
leetcode739 每日溫度
即找之後第乙個比自己大的元素 參考 用棧實現 將元素 下標 依次入棧並且保證棧內元素從棧頂到棧底是遞增的。如果當前元素比棧頂元素大,則說明當前元素就是比棧頂元素大的第乙個元素,求出兩個下標的差值即為棧頂元素對應的結果。依次出棧並計算下標差直到棧頂元素大於當前元素,將當前元素入棧 比如 t 73,74...