![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
LeetCode
文章平均质量分 57
LeetCode 学习笔记
安全新司机
这个作者很懒,什么都没留下…
展开
-
LeetCode--1445. 苹果和桔子
LeeCode SQL成长之路刷LeetCode需要耐心和毅力,也需要坚持,只有不断地学习和提高,我们才能够真正地体会到刷题的乐趣和收益原创 2024-02-19 13:50:17 · 484 阅读 · 0 评论 -
LeetCode--1907. 按分类统计薪水
LeeCode SQL成长之路刷LeetCode需要耐心和毅力,也需要坚持,只有不断地学习和提高,我们才能够真正地体会到刷题的乐趣和收益原创 2024-02-19 13:47:55 · 522 阅读 · 0 评论 -
LeetCode--2298. 周末任务计数
LeeCode SQL成长之路刷LeetCode需要耐心和毅力,也需要坚持,只有不断地学习和提高,我们才能够真正地体会到刷题的乐趣和收益原创 2024-02-18 20:19:14 · 517 阅读 · 0 评论 -
LeetCode--2388. 将表中的空值更改为前一个值
LeeCode SQL成长之路刷LeetCode需要耐心和毅力,也需要坚持,只有不断地学习和提高,我们才能够真正地体会到刷题的乐趣和收益原创 2024-02-18 10:36:47 · 384 阅读 · 0 评论 -
LeetCode--1285. 找到连续区间的开始和结束数字
LeeCode SQL成长之路刷LeetCode需要耐心和毅力,也需要坚持,只有不断地学习和提高,我们才能够真正地体会到刷题的乐趣和收益原创 2023-12-20 11:19:59 · 511 阅读 · 0 评论 -
LeetCode--1934. 确认率
LeeCode SQL成长之路刷LeetCode需要耐心和毅力,也需要坚持,只有不断地学习和提高,我们才能够真正地体会到刷题的乐趣和收益原创 2023-12-20 11:18:02 · 481 阅读 · 0 评论 -
LeetCode--580. 统计各专业学生人数
表中的所有部门 (甚至是没有当前学生的部门) 报告各自的部门名称和每个部门的学生人数。dept_id 是 Department 表中 dept_id 的外键。student_id 是该表的主键 (具有唯一值的列)该表的每一行都表示学生的姓名, 性别和所属系的 id。dept_id 是该表的主键 (具有唯一值的列)该表的每一行包含一个部门的 id 和名称。返回结果表. 如果是平局, 则按。原创 2023-11-08 09:53:11 · 269 阅读 · 0 评论 -
LeetCode--584. 寻找用户推荐人
该表的每一行表示一个客户的 id, 姓名以及推荐他们的客户的 id。在 SQL 中, id 是该表的主键列。原创 2023-11-08 09:28:57 · 138 阅读 · 0 评论 -
LeetCode--578. 查询回答率最高的问题
这张表的每一行表示: ID = id 的用户对 question_id 的问题在 timestamp 时间进行了 action 操作.action 是一个 ENUM(category) 数据, 可以是"show", “answer” 或者"skip".如果用户对应的操作是"answer", answer_id 将会是对应答案的 id, 否则, 值为 null.问题 285 显示 1 次, 回答 1 次. 回答率为 1.0。问题 369 显示 1 次, 回答 0 次. 回答率为 0.0。原创 2023-11-07 14:22:59 · 232 阅读 · 0 评论 -
LeetCode--574. 当选者
candidateId 是 id 来自 Candidate 表的外键 (reference 列).编写解决方案来报告获胜候选人的名字 (即获得最多选票的候选人).候选人 B 有 2 票. 候选人 C, D, E 各有 1 票。该表的每一行都包含关于候选对象的 id 和名称的信息.该表的每一行决定了在选举中获得第 i 张选票的候选人.id 是自动递增的主键 (具有唯一值的列)., 可以不需要这个, 简化 sql 复杂度。上面的 sql 在最终结果没有使用。id 是该表中具有唯一值的列。原创 2023-11-07 10:22:04 · 102 阅读 · 0 评论 -
LeetCode--570. 至少有5名直接下属的经理
该表的每一行都表示雇员的名字, 他们的部门和他们的经理的 id。如果 managerId 为空, 则该员工没有经理。在 SQL 中, id 是该表的主键列。没有员工会成为自己的管理者。原创 2023-11-06 21:08:25 · 294 阅读 · 0 评论 -
LeetCode--571. 给定数字的频率查询中位数
如果数列是偶数, 中位数等于第 n/2 和 n/2+1 个数的平均数, 也就是。如果数列是奇数, 中位数等于第 (n+1)/2 个数, 也就是。总结起来就是: 中位数在奇数或偶数的范围。id 是该表的主键列 (具有唯一值的列)编写解决方案, 找出每个公司的工资中位数。该表的每一行表示公司和一名员工的工资。原创 2023-11-06 07:30:00 · 143 阅读 · 0 评论 -
使用 ChatGPT 提升 LeetCode 刷题效率
在做 LeetCode 的 SQL 题库时, 想在本地调试, 需要在本地的数据库上创建表以及准备测试数据, 大家都是有经验的开发人员, 简单粗暴的办法就不讲了。可以借助 ChatGPT 的能力, 生产数据库的表以及测试数据的 sql, 提升刷题效率。原创 2023-11-05 16:14:01 · 506 阅读 · 0 评论 -
LeetCode--577. 员工奖金
empId 是 Employee 表中 empId 的外键 (reference 列).该表的每一行都表示员工的姓名和 id, 以及他们的工资和经理的 id.该表的每一行都包含一个员工的 id 和他们各自的奖金.empId 是该表中具有唯一值的列.empId 是该表具有唯一值的列.编写解决方案, 报告每个奖金。的员工的姓名和奖金数额.的员工的姓名和奖金数额。**示例 1: **原创 2023-11-05 14:52:07 · 113 阅读 · 0 评论 -
LeetCode--175. 组合两个表
该表的每一行都包含一个 ID = PersonId 的人的城市和州的信息。addressId 是该表的主键 (具有唯一值的列).personId 是该表的主键 (具有唯一值的列).该表包含一些人的 ID 和他们的姓和名的信息.的地址, 所以它们的城市和州返回 null.表中每个人的姓, 名, 城市和州. 如果。编写解决方案, 报告。原创 2023-11-05 12:11:24 · 202 阅读 · 0 评论 -
LeetCode--9. 回文数
*解释: ** 从左向右读, 为-121. 从右向左读, 为 121-. 因此它不是一个回文数。回文数是指正序 (从左向右) 和倒序 (从右向左) 读都是一样的整数.**解释: ** 从右向左读, 为 01. 因此它不是一个回文数。是一个回文整数, 返回。**示例 1: ****示例 2: ****示例 3: **原创 2023-11-03 21:21:00 · 129 阅读 · 0 评论 -
LeetCode--550. 游戏玩法分析 IV
换句话说, 你需要计算从首次登录日期开始至少连续两天登录的玩家的数量, 然后除以玩家总数.每一行是一个玩家的记录, 他在某一天使用某个设备注销之前登录并玩了很多游戏 (可能是 0).(player_id, event_date) 是此表的主键 (具有唯一值的列的组合).只有 ID 为 1 的玩家在第一天登录后才重新登录, 所以答案是 1/3 = 0.33。编写解决方案, 报告在首次登录的第二天再次登录的玩家的。这张表显示了某些游戏的玩家的活动情况.**示例 1: **原创 2023-11-03 20:58:35 · 734 阅读 · 0 评论 -
LeetCode--534. 游戏玩法分析 III
对于 ID 为 1 的玩家, 2016-05-02 共玩了 5+6=11 个游戏, 2017-06-25 共玩了 5+6+1=12 个游戏。每一行是一个玩家的记录, 他在某一天使用某个设备注销之前登录并玩了很多游戏(可能是 0 )玩了多少游戏, 也就是说, 玩家在该日期之前所玩的游戏总数, 详细情况请查看示例。对于 ID 为 3 的玩家, 2018-07-03 共玩了 0+5=5 个游戏。编写一个解决方案, 同时报告每组玩家和日期, 以及玩家到。请注意, 对于每个玩家, 我们只关心玩家的登录日期。原创 2023-10-31 11:09:48 · 393 阅读 · 0 评论 -
LeetCode--512. 游戏玩法分析 II
(player_id, event_date) 是这个表的两个主键(具有唯一值的列的组合)每一行是在某天使用某个设备登出之前登录并玩多个游戏(可能为0)的玩家的记录。相似, 但用到的思想有一定的差异, 一开始想借用这题的思路找到结果。请编写解决方案,描述每一个玩家首次登陆的设备名称。这个表显示的是某些游戏玩家的游戏活动情况。原创 2023-10-31 08:30:00 · 251 阅读 · 0 评论 -
LeetCode--511. 游戏玩法分析 I
每行数据记录了一名玩家在退出平台之前, 当天使用同一台设备登录平台后打开的游戏的数目(可能是 0 个)在 SQL 中, 表的主键是 (player_id, event_date)这张表展示了一些游戏玩家在游戏平台上的行为活动。原创 2023-10-30 20:44:22 · 170 阅读 · 0 评论 -
LeetCode--262. 行程和用户
这张表中存所有用户,每个用户都有一个唯一的 users_id ,role 是一个表示用户身份的枚举类型,枚举成员为 (‘client’, ‘driver’, ‘partner’)status 是一个表示行程状态的枚举类型,枚举成员为(‘completed’, ‘cancelled_by_driver’, ‘cancelled_by_client’)的计算方式如下:(被司机或乘客取消的非禁止用户生成的订单数量) / (非禁止用户生成的订单总数)按照天统计, 非禁止用户的取消行程数 和 总行程。原创 2023-10-30 12:34:02 · 268 阅读 · 0 评论 -
LeetCode--197.上升的温度
编写解决方案, 找出与之前(昨天的)日期相比温度更高的所有日期的。id 是该表具有唯一值的列, 该表包含特定日期的温度信息。2015-01-02 的温度比前一天高(10 -> 25)2015-01-04 的温度比前一天高(20 -> 30)查找当前日期 和 前一天。结果格式如下例子所示。**示例 1: **原创 2023-10-29 09:30:00 · 231 阅读 · 0 评论 -
LeetCode--196. 删除重复的电子邮箱
的唯一电子邮件, 请注意你应该编写一个 DELETE 语句而不是 SELECT 语句。该表的每一行包含一封电子邮件。电子邮件将不包含大写字母。驱动程序将首先编译并运行您的代码片段,然后再显示。所有重复的电子邮件,只保留一个具有最小。id 是该表的主键列(具有唯一值的列)。我们保留最小的Id = 1。运行脚本后,显示的答案是。返回结果格式如下示例所示。原创 2023-10-28 15:51:25 · 317 阅读 · 0 评论 -
LeetCode--1991.找到数组的中间位置
如果不存在这样的中间位置, 请你返回。(也就是所有可能中间位置下标最小的一个), 左边部分的和定义为。, 右边部分的和定义为。请你返回满足上述条件。原创 2023-10-28 09:00:00 · 421 阅读 · 0 评论 -
LeetCode--3.无重复字符的最长子串
给定一个字符串s, 请你找出其中不含有重复字符的的长度。原创 2023-10-27 20:37:55 · 153 阅读 · 0 评论 -
LeetCode--2.两数相加
从题目描述看, 是从0 ~ n 结点遍历 ListNode l1, l2, 计算相同位置节点的和, 需要注意进位。你可以假设除了数字 0 之外, 这两个数都不会以 0 开头。的链表, 表示两个非负的整数。它们每位数字都是按照。请你将两个数相加, 并以相同形式返回一个表示和的链表。的方式存储的, 并且每个节点只能存储。原创 2023-10-27 19:05:47 · 622 阅读 · 0 评论 -
LeetCode--1.两数之和
你可以假设每种输入只会对应一个答案。但是, 数组中同一个元素在答案里不能重复出现。, 这样虽然能简单粗暴解题, 但时间复杂度。两层 for 循环, 外层循环。整数, 并返回它们的数组下标。, 请你在该数组中找出。你可以按任意顺序返回答案。原创 2023-10-25 20:59:48 · 239 阅读 · 0 评论 -
LeetCode--快速排序
则把当前节点的数据赋值到 right 节点, 然后停止左边遍历, 开始右边遍历。则把当前节点的数据赋值到 left 节点, 然后停止右边遍历, 开始左边遍历。对左数组递归调用执行 1,2,3 步骤。对右数组递归调用执行 1,2,3 步骤。原创 2023-10-23 15:28:24 · 838 阅读 · 1 评论 -
LeetCode--180 连续出现的数字
在当前数据排序的基础上, 连续出现三次, 简单理解, 满足条件的数据: 当前所在列的 num = 前一行的 num 和 当前所在列的 num = 后一行的 num, 此处需要用到函数。: 下面数据中的 id = 1~4, num 都是一样的, 只能返回一个的 num。, num 连续出现次数 > 3 次场景, 同一个 num 会返回多条记录。在 SQL 中,id 是该表的主键, id 是一个自增列。1 是唯一连续出现至少三次的数字。找出所有至少连续出现三次的数字。返回的结果表中的数据可以按。原创 2023-10-22 18:00:28 · 320 阅读 · 0 评论 -
MySQL 窗口函数
函数返回expression当前行之前的行的值,其值为offset 其分区或结果集中的行数。函数从同一结果集中的当前行访问上一行的数据。), 再通过 id 进行排序, 查询当前行的 num 和 后一行的 num。通过 id 进行排序, 查询当前行的 num 和 后一行的 num。函数对于计算同一结果集中当前行和后续行之间的差异非常有用。例如,如果offset为2,则第一行的返回值为。应用函数之前每个分区中的行的顺序。是从当前行向前行的行数,以获取值。是从当前行返回的行数,以获取值。必须是零或文字正整数。原创 2023-10-22 17:53:49 · 387 阅读 · 2 评论 -
LeetCode--176,177 第 N 高的薪水
可以解释为从 2 条开始取 1 条数据(第一条数据是最高的薪水)表中第二高的薪水。如果不存在第二高的薪水,查询应该返回。此方案可以解决进阶版问题: 第N高的薪水。在 SQL 中,id 是这个表的主键。: 从第m+1条开始,取n条数据。表的每一行包含员工的工资信息。例如获取第二高的薪水。原创 2023-10-22 15:43:03 · 92 阅读 · 0 评论 -
LeetCode--178 分数排名
该表的每一行都包含了一场比赛的分数。Score 是一个有两位小数点的浮点值。查询并对分数进行排序。在 SQL 中,id 是该表的主键。查询结果格式如下所示。原创 2023-10-22 13:40:25 · 159 阅读 · 0 评论 -
MySQL 排名函数 RANK, DENSE_RANK, ROW_NUMBER
DENSE_RANK(): 并列连续排序, 并列即相同的值, 相同的值保留重复名次, 遇到下一个不同值时, 依然按照连续数字排名。RANK(): 并列跳跃排名, 并列即相同的值, 相同的值保留重复名次, 遇到下一个不同值时, 跳跃到总共的排名。思路: 按照部门统计, 前三高薪水的员工信息, 需要用到排名函数, 需要保持排名的连续性, 结合。RANK, DENSE_RANK, ROW_NUMBER 函数在查询结果上的区别。ROW_NUMBER(): 连续排名, 即使相同的值, 依旧按照连续数字进行排名。原创 2023-10-22 12:24:21 · 1350 阅读 · 0 评论 -
[12][01][61] 旋转链表
文章目录1. 题目描述2. 解题思路1. 题目描述给你一个链表的头节点 head, 旋转链表, 将链表每个节点向右移动 k 个位置输入:head = [1, 2, 3, 4, 5], k = 2输出:[4, 5, 1, 2, 3]输入:head = [0, 1, 2], k = 4输出:[2, 0, 1]2. 解题思路当链表 head 为空或只有一个结点的情况, 直接返回 head当向右移动 k 个位置的 k = 0, 不需要处理直接返回 head计算出链表节点总数 length原创 2022-04-26 19:58:36 · 665 阅读 · 0 评论 -
[12][01][186] 翻转字符串里的单词 II
文章目录1. 题目描述2. 解题思路1. 题目描述给定一个字符串, 逐个翻转字符串中的每个单词输入: ['t', 'h', 'e', ' ', 's', 'k', 'y', ' ', 'i', 's', ' ', 'b', 'l', 'u', 'e']输出: ['b', 'l', 'u', 'e', ' ', 'i', 's', ' ', 's', 'k', 'y', ' ', 't', 'h', 'e']2. 解题思路整体需要关注’ ’ 是翻转的隔离符将整个 char[] 进行翻转遍历原创 2022-04-26 19:52:08 · 269 阅读 · 0 评论 -
[12][01][189] 轮转数组
文章目录1. 题目描述2. 解题思路1. 题目描述给你一个数组, 将数组中的元素向右轮转 k 个位置, 其中 k 是非负数输入: nums = [1, 2, 3, 4, 5, 6, 7], k = 3输出: [5, 6, 7, 1, 2, 3, 4]输入:nums = [-1, -100, 3, 99], k = 2输出:[3, 99, -1, -100]2. 解题思路当数组长度为 0 或 k 为 nums.length 的整数倍时, 不需要做处理将 k %= nums.length原创 2022-04-26 18:40:11 · 146 阅读 · 0 评论 -
[12][01][86] 分隔链表
文章目录1. 题目描述2. 解题思路1. 题目描述给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。你应当 保留 两个分区中每个节点的初始相对位置示例 1输入:head = [1,4,3,2,5,2], x = 3输出:[1,2,2,4,3,5]示例 2输入:head = [2,1], x = 2输出:[1,2]2. 解题思路遍历 head, 定义两个新的链表, minListNode原创 2021-10-19 19:44:33 · 60 阅读 · 0 评论 -
[12][01][83] 删除排序链表中的重复元素
文章目录1. 题目描述2. 解题思路1. 题目描述存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。返回同样按升序排列的结果链表示例 1输入:head = [1,1,2]输出:[1,2]示例 2输入:head = [1,1,2,3,3]输出:[1,2,3]2. 解题思路可以借鉴 82 删除排序链表中的重复元素 II 解题经验/** * Definition for si原创 2021-10-19 19:43:56 · 57 阅读 · 0 评论 -
[12][01][24] 两两交换链表中的节点
文章目录1. 题目描述2. 解题思路1. 题目描述给定一个链表,两两交换其中相邻的节点,并返回交换后的链表你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换示例 1输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2输入:head = []输出:[]示例 3输入:head = [1]输出:[1]2. 解题思路head 和 head.next 两个结点, 交换顺序由之前的 head -> head.next, 变更为 head.原创 2021-10-19 19:40:35 · 60 阅读 · 0 评论 -
[12][01][23] 合并K个升序链表
文章目录1. 题目描述2. 解题思路1. 题目描述给你一个链表数组,每个链表都已经按升序排列请你将所有链表合并到一个升序链表中,返回合并后的链表示例 1输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[ 1->4->5, 1->3->4, 2->6]将它们合并到一个有序链表中得到 1->1->2->3->4->4->5->原创 2021-10-19 19:40:05 · 57 阅读 · 0 评论