首页 > 其他分享 >leetcode-197-上升的温度

leetcode-197-上升的温度

时间:2024-10-24 09:47:23浏览次数:5  
标签:01 197 id weather w2 w1 recordDate leetcode 温度

链接:197. 上升的温度 - 力扣(LeetCode)

前提条件:

表: Weather

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| id            | int     |
| recordDate    | date    |
| temperature   | int     |
+---------------+---------+
id 是该表具有唯一值的列。
没有具有相同 recordDate 的不同行。
该表包含特定日期的温度信息

编写解决方案,找出与之前(昨天的)日期相比温度更高的所有日期的 id 。返回结果 无顺序要求 。结果格式如下例子所示。

CREATE TABLE Weather (
    id INT,
    recordDate DATE,
    temperature INT
);
INSERT INTO
            Weather
VALUES
            (1, '2015-01-01', 10),
            (2, '2015-01-02', 25),
            (3, '2015-01-03', 20),
            (4, '2015-01-04', 30);

思路:

  1. 先笛卡尔积
  2. 过滤找出日期前后日期相差一天
  3. 查询

优化:

  1. 使用连接替代交叉连接
SELECT
        w2.id id
FROM
        weather w1
JOIN
        Weather w2 ON w2.recordDate=DATE_ADD(w1.recordDate,INTERVAL 1 DAY ) AND w1.temperature < w2.temperature;

实现:

  1. SELECT
            *
    FROM 
            weather w1 CROSS JOIN weather w2;

     2.

SELECT
        *
FROM
        weather w1 CROSS JOIN weather w2
WHERE
        DATEDIFF(w2.recordDate,w1.recordDate)=1 ;

     3.

SELECT
        w2.id id
FROM
        weather w1 CROSS JOIN weather w2
WHERE
        DATEDIFF(w2.recordDate,w1.recordDate)=1 and w1.temperature<w2.temperature;

 

标签:01,197,id,weather,w2,w1,recordDate,leetcode,温度
From: https://www.cnblogs.com/kezz/p/18498922

相关文章

  • leetcode刷题-1581. 进店却未进行过交易的顾客
    链接:1581.进店却未进行过交易的顾客-力扣(LeetCode)前提条件:表:Visits+-------------+---------+|ColumnName|Type|+-------------+---------+|visit_id|int||customer_id|int|+-------------+---------+visit_id是该表中具有唯一值的列。......
  • Leetcode刷题Python之3185.构成整天的下标对数目II
    提示:直接暴力求解会超过执行时间,因此要考虑其他方法降低复杂度。文章目录问题描述一、示例:二、解题思路1.找余数2.利用哈希表存储余数3.逐步统计配对数代码实现解释代码复杂度分析问题描述给定一个整数数组hours,表示时间,以小时为单位。我们需要找到数组中满......
  • LeetCode|3185. 构成整天的下标对数目 II(day21)
    作者:MJ昊博客:掘金、CSDN等公众号:程序猿的编程之路今天是昊的算法之路第21天,今天分享的是LeetCode第3185题构成整天的下标对数目II的解题思路。这是一道中等难度的题目,主要考察如何高效地统计两个元素之和为24的倍数的下标对,通过优化的算法减少时间复杂度。题目描......
  • LeetCode|3184. 构成整天的下标对数目 I(day20)
    作者:MJ昊博客:掘金、CSDN等公众号:程序猿的编程之路今天是昊的算法之路第20天,今天分享的是LeetCode第3184题构成整天的下标对数目I的解题思路。这是一道简单难度的题目,考察的是数组元素之间的组合与模运算。题目描述简要回顾给定一个整数数组hours,求满足(hours[i]+......
  • 每日一题:Leetcode-316 去除重复字母
    力扣题目解题思路java代码力扣题目:给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。示例1:输入:s="bcabc"输出:"abc"示例2:输入:s="cbacdcbc"输出:"acdb"提示:1<=s.l......
  • LeetCode刷题-移除元素
    给你一个数组nums和一个值val,你需要原地移除所有数值等于val的元素。元素的顺序可能发生改变。然后返回nums中与val不同的元素的数量。假设nums中不等于val的元素数量为k,要通过此题,您需要执行以下操作:更改nums数组,使nums的前k个元素包含不等于val的......
  • 代码随想录算法训练营第八天|leetcode344.反转字符串、leetcode541. 反转字符串II、卡
    1leetcode344.反转字符串题目链接:344.反转字符串-力扣(LeetCode)文章链接:代码随想录视频链接:字符串基础操作!|LeetCode:344.反转字符串_哔哩哔哩_bilibili自己的思路:直接使用python的内置函数reverse进行一个操作1.1自己的代码1.1.1python的内置函数classSolution:......
  • 【快慢指针】LeetCode 143. 重排链表
    题解用快慢指针先找到中间结点,然后断开前后两条链,用头插法的思路逆转后面那条链,最后两条链依次从前往后遍历插入即可。参考代码/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nul......
  • 【从零开始的LeetCode-算法】884. 两句话中的不常见单词
    句子 是一串由空格分隔的单词。每个 单词 仅由小写字母组成。如果某个单词在其中一个句子中恰好出现一次,在另一个句子中却 没有出现 ,那么这个单词就是 不常见的 。给你两个 句子 s1 和 s2 ,返回所有 不常用单词 的列表。返回列表中单词可以按 任意顺序 组织。......
  • 【从零开始的LeetCode-算法】3184. 构成整天的下标对数目 I
    给你一个整数数组 hours,表示以 小时 为单位的时间,返回一个整数,表示满足 i<j 且 hours[i]+hours[j] 构成 整天 的下标对 i, j 的数目。整天 定义为时间持续时间是24小时的 整数倍 。例如,1天是24小时,2天是48小时,3天是72小时,以此类推。示例1:......