本文主要是介绍LeetCode--197.上升的温度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 1 题目描述
- 2 解题思路
- 2.1 代码实现
1 题目描述
表: Weather
+---------------+---------+
| Column Name | Type |
+---------------+---------+
| id | int |
| recordDate | date |
| temperature | int |
+---------------+---------+
id 是该表具有唯一值的列, 该表包含特定日期的温度信息
编写解决方案, 找出与之前(昨天的)日期相比温度更高的所有日期的 id
返回结果 无顺序要求
结果格式如下例子所示
**示例 1: **
**输入: **
Weather 表:
+----+------------+-------------+
| id | recordDate | Temperature |
+----+------------+-------------+
| 1 | 2015-01-01 | 10 |
| 2 | 2015-01-02 | 25 |
| 3 | 2015-01-03 | 20 |
| 4 | 2015-01-04 | 30 |
+----+------------+-------------+
**输出: **
+----+
| id |
+----+
| 2 |
| 4 |
+----+
**解释: **
2015-01-02 的温度比前一天高(10 -> 25)
2015-01-04 的温度比前一天高(20 -> 30)
2 解题思路
- 使用
SUBDATE()
函数, 查找前 n 天的日期, 函数使用文档 - 题目要求是, 当前时间 与 前一天 数据对比, 最开始是想用
LAG()
函数对比当前和上一天数据, 上一条数据的日期 不等同于 前一天
2.1 代码实现
a.recorddate = subdate(b.recorddate, 1)
查找当前日期 和 前一天
select b.id from Weather a, Weather b
where a.recorddate = subdate(b.recorddate, 1)
and b.temperature > a.temperature
这篇关于LeetCode--197.上升的温度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!