一、题目
二、代码
class Solution
{
public int[] dailyTemperatures(int[] temperatures)
{
int i,j;
int length = temperatures.length;
int[] result = new int[length];
//堆栈中存储的是下标
Stack<Integer> stack = new Stack<>();
stack.push(0);
for(i=1;i<length;i++)
{
if(temperatures[i]>temperatures[stack.peek()])
{
//要一直大才压入
while(stack.empty()==false&&temperatures[i]>temperatures[stack.peek()])
{
int num = i-stack.peek();
// System.out.println(" i-stack.peek() " +num);
result[stack.peek()] = i-stack.peek();
// System.out.println(" i为 "+i);
// System.out.println(" peek "+stack.peek());
// System.out.println(" 设置结果 "+num);
stack.pop();
}
stack.push(i);
}
else if(temperatures[i]==temperatures[stack.peek()])
{
stack.push(i);
}
else
{
stack.push(i);
}
}
return result;
}
}