【LeetCode-每日一题】-739-每日温度

简介: 【LeetCode-每日一题】-739-每日温度

1. 题目描述

2. 题目解析

  1. 大致的意思是:在今天的以后几天内,有哪一天是比今天的气温升高的,如果有的话,求出其中的天数差,如果没有的话,用0代替。
  2. 一开始用的暴力,然后超时。
  3. 这个题目用到了单调栈的原理。

3. 题目代码

public static int[] dailyTemperatures(int[] T) {
    int[] list = new int[T.length];
    int num = 0;
    Stack<Integer> stack = new Stack<>();
    for (int i = 0; i < list.length; i++) {
      // 字符串长度为 0,返回 true,否则返回 false。
      // Object push(Object element):将元素推送到堆栈顶部。
      // Object pop():移除并返回堆栈的顶部元素。如果我们在调用堆栈为空时调用pop(),则抛出’EmptyStackException’异常。
      // Object peek():返回堆栈顶部的元素,但不删除它。
      // boolean empty():如果堆栈顶部没有任何内容,则返回true。否则,返回false。
      // int search(Object element):确定对象是否存在于堆栈中。如果找到该元素,它将从堆栈顶部返回元素的位置。否则,它返回-1。
      while (!stack.isEmpty() && T[i] > T[stack.peek()]) {
        list[stack.peek()] = i - stack.peek();
        stack.pop();
      }
      stack.add(i);
    }
    return list;
  }


相关文章
|
2月前
|
C++
leetcode739 每日温度
leetcode739 每日温度
|
2月前
|
算法
代码随想录算法训练营第五十七天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
代码随想录算法训练营第五十七天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
31 3
|
2月前
|
存储 算法
代码随想录算法训练营第五十九天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
代码随想录算法训练营第五十九天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
30 1
|
2月前
|
索引
leetcode代码记录(每日温度
leetcode代码记录(每日温度
21 0
|
2月前
|
容器
代码随想录 Day49 单调栈01 LeetCode LeetCodeT739每日温度 T496 下一个最大元素I
代码随想录 Day49 单调栈01 LeetCode LeetCodeT739每日温度 T496 下一个最大元素I
47 0
|
2月前
|
SQL
leetcode-SQL-197. 上升的温度
leetcode-SQL-197. 上升的温度
23 0
|
2月前
|
索引
leetcode-739:每日温度
leetcode-739:每日温度
33 0
|
11月前
力扣739 每日温度
力扣739 每日温度
50 0
|
测试技术 数据库
LeetCode(数据库)- 上升的温度
LeetCode(数据库)- 上升的温度
123 0
|
存储
LeetCode 739. 每日温度
LeetCode 739. 每日温度
74 0
LeetCode 739. 每日温度