刷题5:每日温度
Posted 嗯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了刷题5:每日温度相关的知识,希望对你有一定的参考价值。
Leetcode: 739. 每日温度
要点:
把数组下标压进栈,即将进栈的下标元素对应的温度如果比栈顶元素对应的温度高,则该元素为右边第一个比栈顶元素对应温度高的温度下标,该元素与栈顶元素下标之差即为需要等待的天数,其他元素采用相同做法,最终结果放在数组res中。
注意事项:
注意是把下标压入栈,用下标所对应的温度相比较。
class Solution {
public int[] dailyTemperatures(int[] T) {
Stack<Integer> st = new Stack<Integer>();
int len = T.length;
int[] res = new int[len];
Arrays.fill(res,0);
for(int i = 0;i < len;i++){
while(!st.isEmpty() && T[st.peek()] < T[i]){
int index = st.peek();
int day = i - st.pop();
res[index] = day;
}
st.push(i);
}
return res;
}
}
以上是关于刷题5:每日温度的主要内容,如果未能解决你的问题,请参考以下文章