思路:
使用栈,来存储不大于的温度的下标
代码:
class Solution {
public int[] dailyTemperatures(int[] T) {
int n=T.length;
Deque<Integer> stack=new ArrayDeque<>();
stack.addLast(0);
int[] res=new int[n];
for(int i=1;i<n;i++){
//栈中存的是下标
while(!stack.isEmpty()&&T[i]>T[stack.peekLast()]){
int index=stack.removeLast();
res[index]=i-index;
}
stack.addLast(i);
}
return res;
}
}
分解:
1)栈中存的是下标
复杂度分析:
时间复杂度:O(N)
空间复杂度:O(N)栈