LeetCode0739.每日温度

题目要求

算法分析

利用栈解决.

按索引遍历{

  如果栈为空,将索引入栈,

  如果栈不空,判断,当前索引对应的温度是否比栈顶索引对应的温度高,{

    如果高则出栈,并计算索引差,所得结果存入返回数组对应的索引上,然后返回上一步重新比较栈顶元素和当前元素的大小

    如果低则入栈。

  }

}

代码展示(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;
    }
}

提交结果

原文地址:https://www.cnblogs.com/KingR/p/13091921.html