R8-栈篇
印象题:单调栈的使用
参考本人博客:单调栈
class Solution {
public int[] dailyTemperatures(int[] temperatures) {
int num=temperatures.length;
int [] ret=new int[num];
Stack<Integer>st=new Stack<>();
for (int i=0;i<num;i++){
while(!st.isEmpty()&&temperatures[i]>temperatures[st.peek()]){
int j=st.pop();
ret[j]=i-j;
}
st.push(i);
}
return ret;
}
}
PS:
java语法
1.定义数组
int [] ret=new int[num];
2.定义栈
Stack<Integer>st=new Stack<>();
3.取栈顶元素
stack.peek()