Leetcode_#739_每日温度

原题:#739_每日温度

  • 题目翻译:求出数组中元素与下一个比它大的元素之间的距离
  • 思路:
    • 使用栈存放数组下标
    • 遍历数组中的元素并把它放入栈中
      • 放入栈前,如果栈不为空,比较当前节点的值与栈中下标对应数组中的值,如果当前的值较大,则说明当前元素为栈顶元素的下一个比它大的值,计算两者下标距离
      • 如果当前值不比栈顶的值大,则把当前值的下标入栈
public int[] dailyTemperatures(int[] T) {
    int len = T.length;
    int[] dist = new int[len];
    Stack<Integer> indexs = new Stack<>();
    for (int curIndex = 0; curIndex < len; curIndex++) {
        while (!indexs.isEmpty() && T[curIndex] > T[stack.peek()]) {
            int preIndex = peek.pop();
            dist[preIndex] = curIndex - preIndex;
        }
        indexs.add(curIndex);
    }
    return dist;
}
原创文章 50 获赞 1 访问量 2906

猜你喜欢

转载自blog.csdn.net/u014642412/article/details/105964797