题目要求
算法分析
利用栈解决.
按索引遍历{
如果栈为空,将索引入栈,
如果栈不空,判断,当前索引对应的温度是否比栈顶索引对应的温度高,{
如果高则出栈,并计算索引差,所得结果存入返回数组对应的索引上,然后返回上一步重新比较栈顶元素和当前元素的大小
如果低则入栈。
}
}
代码展示(C#)
public class Solution { public int[] DailyTemperatures(int[] T) { int[] ret = new int[T.Length]; Stack<int> stack = new Stack<int>(); for(int i = 0; i < T.Length; i++){ while(stack.Count != 0 && T[stack.Peek()]<T[i]){ int temp = stack.Pop(); ret[temp] = i-temp; } stack.Push(i); } return ret; } }