leetcode
向盟约宣誓
中二病
展开
-
leetcode 586. 订单最多的客户
customer_number 为 '3' 的顾客有两个订单,比顾客 '1' 或者 '2' 都要多,因为他们只有一个订单。所以结果是该顾客的 customer_number ,也就是 3。如果有多位顾客订单数并列最多,你能找到他们所有的。Order_number是该表的主键。此表包含关于订单ID和客户ID的信息。比任何其他客户下了更多的订单。编写一个SQL查询,为下了。查询结果格式如下所示。原创 2023-03-21 17:45:35 · 230 阅读 · 0 评论 -
leetcode 595. 大的国家
这张表的每一行提供:国家名称、所属大陆、面积、人口和 GDP 值。如果一个国家满足下述两个条件之一,则认为该国是。编写一个 SQL 查询以报告。name 是这张表的主键。的国家名称、人口和面积。查询结果格式如下例所示。原创 2023-03-21 17:27:11 · 239 阅读 · 0 评论 -
leetcode 584. 寻找用户推荐人
写一个查询语句,返回一个客户列表,列表中客户的推荐人的编号都 不是 2。给定表 customer ,里面保存了所有客户信息和他们的推荐人。原创 2023-03-10 11:09:09 · 288 阅读 · 0 评论 -
leetcode 511. 游戏玩法分析 I
每行数据记录了一名玩家在退出平台之前,当天使用同一台设备登录平台后打开的游戏的数目(可能是 0 个)。表的主键是 (player_id, event_date)。写一条 SQL 查询语句获取每位玩家 第一次登陆平台的日期。这张表展示了一些游戏玩家在游戏平台上的行为活动。原创 2023-03-10 11:01:31 · 67 阅读 · 0 评论 -
leetcode 182. 查找重复的电子邮箱
编写一个 SQL 查询来报告所有重复的电子邮件。请注意,可以保证电子邮件字段不为 NULL。此表的每一行都包含一封电子邮件。电子邮件不包含大写字母。解释: a@b.com 出现了两次。以 任意顺序 返回结果表。id 是该表的主键列。去重用distinct。查询结果格式如下例。原创 2023-03-10 10:56:11 · 216 阅读 · 0 评论 -
leetcode 183. 从不订购的客户
某网站包含两个表,Customers 表和 Orders 表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。原创 2023-03-10 10:32:20 · 267 阅读 · 0 评论 -
leetcode 176. 第二高的薪水
编写一个 SQL 查询,获取并返回 Employee 表中第二高的薪水。如果不存在第二高的薪水,查询应该返回 null。表的每一行包含员工的工资信息。id 是这个表的主键。查询结果如下例所示。原创 2023-03-09 11:10:13 · 343 阅读 · 0 评论 -
leetcode 181. 超过经理收入的员工
该表的每一行都表示雇员的ID、姓名、工资和经理的ID。编写一个SQL查询来查找收入比经理高的员工。Joe 是唯一挣得比经理多的雇员。查询结果格式如下所示。原创 2023-03-02 12:39:28 · 369 阅读 · 1 评论 -
leetcode 1250. 检查「好数组」
给你一个正整数数组 nums,你需要从中任选一些子集,然后将子集中每一个数乘以一个 任意整数,并求出他们的和。假如该和结果为 1,那么原数组就是一个「好数组」,则返回 True;否则请返回 False。输入:nums = [12,5,7,23]输入:nums = [29,6,10]解释:挑选数字 29, 6 和 10。输入:nums = [3,6]解释:挑选数字 5 和 7。原创 2023-02-15 09:57:58 · 403 阅读 · 1 评论 -
leetcode 2335. 装满杯子需要的最短总时长
给你一个下标从 0 开始、长度为 3 的整数数组 amount ,其中 amount[0]、amount[1] 和 amount[2] 分别表示需要装满冷水、温水和热水的杯子数量。第 1 秒:装满一杯冷水和一杯温水。第 2 秒:装满一杯温水和一杯热水。第 3 秒:装满一杯温水和一杯热水。第 1 秒:装满一杯冷水和一杯热水。第 2 秒:装满一杯冷水和一杯温水。第 3 秒:装满一杯冷水和一杯温水。第 4 秒:装满一杯温水和一杯热水。第 5 秒:装满一杯冷水和一杯热水。第 6 秒:装满一杯冷水和一杯温水。原创 2023-02-11 09:15:09 · 378 阅读 · 0 评论 -
leetcode 2331. 计算布尔二叉树的值
非叶子节点 要么值为 2 要么值为 3 ,其中 2 表示逻辑或 OR ,3 表示逻辑与 AND。叶子节点 要么值为 0 要么值为 1 ,其中 0 表示 False ,1 表示 True。如果节点是个叶子节点,那么节点的 值 为它本身,即 True 或者 False。否则,计算 两个孩子的节点值,然后将该节点的运算符对两个孩子值进行 运算。解释:根节点是叶子节点,且值为 false,所以我们返回 false。根节点的值为 True ,所以我们返回 true。叶子节点 是没有孩子的节点。原创 2023-02-06 08:31:52 · 489 阅读 · 1 评论 -
leetcode 1145. 二叉树着色游戏
每一回合,玩家选择一个被他染过色的节点,将所选节点一个 未着色 的邻节点(即左右子节点、或父节点)进行染色(「一号」玩家染红色,「二号」玩家染蓝色)。游戏中,给出二叉树的根节点 root,树上总共有 n 个节点,且 n 为奇数,其中每个节点上的值从 1 到 n 各不相同。输入:root = [1,2,3,4,5,6,7,8,9,10,11], n = 11, x = 3。「一号」玩家给值为 x 的节点染上红色,而「二号」玩家给值为 y 的节点染上蓝色。若两个玩家都没有可以染色的节点时,游戏结束。原创 2023-02-05 23:25:29 · 326 阅读 · 1 评论 -
leetcode 2325. 解密消息
例如,key = "happy boy"(实际的加密密钥会包含字母表中每个字母 至少一次),据此,可以得到部分对照表('h' -> 'a'、'a' -> 'b'、'p' -> 'c'、'y' -> 'd'、'b' -> 'e'、'o' -> 'f')。输入:key = "the quick brown fox jumps over the lazy dog", message = "vkbs bs t suepuv"key 包含英文字母表中每个字符('a' 到 'z')至少一次。空格 ' ' 保持不变。原创 2023-02-01 16:19:58 · 228 阅读 · 0 评论 -
leetcode 2319. 判断矩阵是否是一个 X 矩阵
给你一个大小为 n x n 的二维整数数组 grid ,表示一个正方形矩阵。输入:grid = [[2,0,0,1],[0,3,1,0],[0,5,2,0],[4,0,0,2]]X 矩阵应该满足:绿色元素(对角线上)都不是 0 ,红色元素都是 0。X 矩阵应该满足:绿色元素(对角线上)都不是 0 ,红色元素都是 0。输入:grid = [[5,7,0],[0,3,1],[0,5,0]]因此,grid 不是一个 X 矩阵。因此,grid 是一个 X 矩阵。解释:矩阵如上图所示。解释:矩阵如上图所示。原创 2023-01-31 08:50:40 · 232 阅读 · 0 评论 -
leetcode 1669. 合并两个链表
输入:list1 = [0,1,2,3,4,5,6], a = 2, b = 5, list2 = [1000000,1000001,1000002,1000003,1000004]输入:list1 = [0,1,2,3,4,5], a = 3, b = 4, list2 = [1000000,1000001,1000002]输出:[0,1,1000000,1000001,1000002,1000003,1000004,6]输出:[0,1,2,1000000,1000001,1000002,5]原创 2023-01-30 15:04:25 · 204 阅读 · 0 评论 -
leetcode 2315. 统计星号
解释:需要考虑的字符加粗加斜体后:"yo|uar|e**|b|e***au|tifu|l"。换言之,第一个和第二个 '|' 为一对,第三个和第四个 '|' 为一对,以此类推。解释:不在竖线对之间的字符加粗加斜体后,得到字符串:"l|*e*et|c**o|*de|"。输入:s = "yo|uar|e**|b|e***au|tifu|l"s 只包含小写英文字母,竖线 '|' 和星号 '*'。请你返回 不在 竖线对之间,s 中 '*' 的数目。输入:s = "l|*e*et|c**o|*de|"原创 2023-01-29 22:26:26 · 442 阅读 · 0 评论 -
leetcode 1824. 最少侧跳次数
给你一个长度为 n + 1 的数组 obstacles ,其中 obstacles[i] (取值范围从 0 到 3)表示在点 i 处的 obstacles[i] 跑道上有一个障碍。这只青蛙从点 i 跳到点 i + 1 且跑道不变的前提是点 i + 1 的同一跑道上没有障碍。为了躲避障碍,这只青蛙也可以在 同一个 点处 侧跳 到 另外一条 跑道(这两条跑道可以不相邻),但前提是跳过去的跑道该点处没有障碍。比方说,这只青蛙可以从点 3 处的跑道 3 跳到点 3 处的跑道 1。总共有 2 次侧跳(红色箭头)。原创 2023-01-28 16:50:24 · 561 阅读 · 0 评论 -
leetcode 1828. 统计一个圆中点的数目
输入:points = [[1,1],[2,2],[3,3],[4,4],[5,5]], queries = [[1,2,2],[2,2,2],[4,3,2],[4,3,3]]输入:points = [[1,3],[3,3],[5,3],[2,2]], queries = [[2,3,1],[4,3,1],[1,1,2]]queries[0] 是绿色的圆,queries[1] 是红色的圆,queries[2] 是蓝色的圆,queries[3] 是紫色的圆。输出:[2,3,2,4]输出:[3,2,2]原创 2023-01-24 23:37:54 · 1065 阅读 · 0 评论 -
leetcode 2299. 强密码检验器 II
它 不 包含 2 个连续相同的字符(比方说 "aab" 不符合该条件,但是 "aba" 符合该条件)。给你一个字符串 password ,如果它是一个 强 密码,返回 true,否则返回 false。解释:密码不包含数字,且包含 2 个连续相同的字符。@#$%^&*()-+" 中的一个。输入:password = "Me+You--IsMyDream"输入:password = "IloveLe3tcode!解释:密码满足所有的要求,所以我们返回 true。输入:password = "1aB!原创 2023-01-19 18:08:00 · 1649 阅读 · 0 评论 -
leetcode 1814. 统计一个数组中好对子的数目
给你一个数组 nums ,数组中只包含非负整数。定义 rev(x) 的值为将整数 x 各个数字位反转得到的结果。比方说 rev(123) = 321 , rev(120) = 21。请你返回好下标对的数目。由于结果可能会很大,请将结果对 109 + 7 取余 后返回。输入:nums = [13,10,35,24,76]输入:nums = [42,11,1,97]原创 2023-01-17 09:22:01 · 684 阅读 · 1 评论 -
leetcode 2283. 判断一个数的数字计数是否等于数位的值
如果对于 每个 0原创 2023-01-11 16:01:22 · 616 阅读 · 2 评论 -
leetcode 2351. 第一个出现两次的字母
如果 a 的 第二次 出现比 b 的 第二次 出现在字符串中的位置更靠前,则认为字母 a 在字母 b 之前出现两次。字母 'c' 是第一个出现两次的字母,因为在所有字母中,'c' 第二次出现的下标是最小的。给你一个由小写英文字母组成的字符串 s ,请你找出并返回第一个出现 两次 的字母。字母 'c' 在下标 2 、3 和 7 处出现。只有字母 'd' 出现两次,所以返回 'd'。字母 'b' 在下标 1 和 4 处出现。输入:s = "abccbaacz"输入:s = "abcdd"原创 2023-01-09 22:55:46 · 94 阅读 · 1 评论 -
leetcode 1806. 还原排列的最少操作步数
给你一个偶数 n ,已知存在一个长度为 n 的排列 perm ,其中 perm[i] == i(下标 从 0 开始 计数)。如果 i % 2 == 1 ,那么 arr[i] = perm[n / 2 + (i - 1) / 2]如果 i % 2 == 0 ,那么 arr[i] = perm[i / 2]第 1 步操作后,perm = [0,2,1,3]第 2 步操作后,perm = [0,1,2,3]解释:最初,perm = [0,1,2,3]第 1 步操作后,perm = [0,1]原创 2023-01-09 18:04:59 · 326 阅读 · 0 评论 -
leetcode 2185. 统计包含给定前缀的字符串
输入:words = ["pay","attention","practice","attend"], pref = "at"输入:words = ["leetcode","win","loops","success"], pref = "code"解释:以 "at" 作为前缀的字符串有两个,分别是:"attention" 和 "attend"。返回 words 中以 pref 作为 前缀 的字符串的数目。解释:不存在以 "code" 作为前缀的字符串。原创 2023-01-08 08:24:12 · 106 阅读 · 0 评论 -
leetcode 1658. 将 x 减到 0 的最小操作数
给你一个整数数组 nums 和一个整数 x。每一次操作时,你应当移除数组 nums 最左边或最右边的元素,然后从 x 中减去该元素的值。解释:最佳解决方案是移除后三个元素和前两个元素(总共 5 次操作),将 x 减到 0。否则,返回 -1。输入:nums = [3,2,20,1,1,3], x = 10。输入:nums = [1,1,4,2,3], x = 5。解释:最佳解决方案是移除后两个元素,将 x 减到 0。输入:nums = [5,6,7,8,9], x = 4。原创 2023-01-07 09:38:14 · 608 阅读 · 1 评论 -
leetcode 1802. 有界数组中指定下标处的最大值
解释:数组 [1,1,2,1] 和 [1,2,2,1] 满足所有条件。abs(nums[i] - nums[i+1])原创 2023-01-05 18:09:47 · 205 阅读 · 1 评论 -
【再练回溯法】leetcode 46. 全排列
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列。你可以 按任意顺序 返回答案。输入:nums = [1,2,3]输出:[[0,1],[1,0]]nums 中的所有整数 互不相同。输入:nums = [0,1]输入:nums = [1]原创 2022-12-13 21:27:44 · 301 阅读 · 2 评论 -
leetcode 200. 岛屿数量
以上代码思路为并查集,特别需要注意finds函数的应用,迭代,每次find都找到最深的根。在此基础上新增在遍历矩阵时先求出连通体数量result,然后每次合并时result--。给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。grid[i][j] 的值为 '0' 或 '1'此外,你可以假设该网格的四条边均被水包围。输入:grid = [输入:grid = [原创 2022-12-11 17:18:07 · 74 阅读 · 0 评论 -
leetcode 1742. 盒子中小球的最大数量
例如,编号 321 的小球应当放入编号 3 + 2 + 1 = 6 的盒子,而编号 10 的小球应当放入编号 1 + 0 = 1 的盒子。编号 5 和 6 的盒子放有最多小球,每个盒子中的小球数量都是 2。小球数量:0 1 1 1 1 1 1 1 1 2 0 0 ...小球数量:2 1 1 1 1 1 1 1 1 0 0 ...小球数量:1 1 1 1 2 2 1 1 1 0 0 ...编号 10 的盒子放有最多小球,小球数量为 2。编号 1 的盒子放有最多小球,小球数量为 2。原创 2022-11-23 09:17:42 · 133 阅读 · 0 评论 -
leetcode 1732. 找到最高海拔
给你一个长度为 n 的整数数组 gain ,其中 gain[i] 是点 i 和点 i + 1 的 净海拔高度差(0原创 2022-11-19 09:54:11 · 153 阅读 · 0 评论 -
leetcode 1710. 卡车上的最大单元数
输入:boxTypes = [[5,10],[2,5],[4,7],[3,9]], truckSize = 10。输入:boxTypes = [[1,3],[2,2],[3,1]], truckSize = 4。单元总数 = (1 * 3) + (2 * 2) + (1 * 1) = 8。可以选择第一类和第二类的所有箱子,以及第三类的一个箱子。- 2 个第二类的箱子,每个里面含 2 个单元。- 3 个第三类的箱子,每个里面含 1 个单元。- 1 个第一类的箱子,里面含 3 个单元。原创 2022-11-15 10:17:37 · 93 阅读 · 0 评论 -
leetcode 790. 多米诺和托米诺平铺
平铺指的是每个正方形都必须有瓷砖覆盖。两个平铺不同,当且仅当面板上有四个方向上的相邻单元中的两个,使得恰好有一个平铺有一个瓷砖占据两个正方形。有两种形状的瓷砖:一种是 2 x 1 的多米诺形,另一种是形如 "L" 的托米诺形。两种形状都可以旋转。给定整数 n ,返回可以平铺 2 x n 的面板的方法的数量。返回对 109 + 7 取模 的值。解释: 五种不同的方法如上所示。原创 2022-11-14 09:44:10 · 108 阅读 · 0 评论 -
leetcode 791. 自定义字符串排序
更具体地说,如果在 order 中的字符 x 出现字符 y 之前,那么在排列后的字符串中, x 也应该出现在 y 之前。因为“d”不是按顺序出现的,所以它可以在返回的字符串中的任何位置。“dcba”、“cdba”、“cbda”也是有效的输出。“a”、“b”、“c”是按顺序出现的,所以“a”、“b”、“c”的顺序应该是“c”、“b”、“a”。输入: order = "cbafg", s = "abcd"输入: order = "cba", s = "abcd"输出: "cbad"输出: "cbad"原创 2022-11-13 10:20:47 · 61 阅读 · 0 评论 -
leetcode 1704. 判断字符串的两半是否相似
两个字符串 相似 的前提是它们都含有相同数目的元音('a','e','i','o','u','A','E','I','O','U')。解释:a = "text" 且 b = "book"。a 中有 1 个元音,b 中有 2 个元音。解释:a = "bo" 且 b = "ok"。a 中有 1 个元音,b 也有 1 个元音。将其拆分成长度相同的两半,前一半为 a ,后一半为 b。注意,元音 o 在 b 中出现两次,记为 2 个。输入:s = "textbook"输入:s = "book"原创 2022-11-11 09:44:10 · 296 阅读 · 0 评论 -
leetcode 764. 最大加号标志
一个 k 阶由 1 组成的 “轴对称”加号标志 具有中心网格 grid[r][c] == 1 ,以及4个从中心向上、向下、向左、向右延伸,长度为 k-1,由 1 组成的臂。注意,只有加号标志的所有网格要求为 1 ,别的网格可能为 0 也可能为 1。在一个 n x n 的矩阵 grid 中,除了在数组 mines 中给出的元素为 0,其他每个元素都为 1。mines[i] = [xi, yi]表示 grid[xi][yi] == 0。输入: n = 1, mines = [[0, 0]]原创 2022-11-09 09:36:08 · 183 阅读 · 0 评论 -
leetcode 1684. 统计一致字符串的数目
输入:allowed = "cad", words = ["cc","acd","b","ba","bac","bad","ac","d"]输入:allowed = "abc", words = ["a","b","c","ab","ac","bc","abc"]输入:allowed = "ab", words = ["ad","bd","aaab","baa","badab"]解释:字符串 "cc","acd","ac" 和 "d" 是一致字符串。解释:所有字符串都是一致的。原创 2022-11-08 11:12:58 · 91 阅读 · 0 评论 -
leetcode 1678. 设计 Goal 解析器
command 由 "G"、"()" 和/或 "(al)" 按某种顺序组成。Goal 解析器会将 "G" 解释为字符串 "G"、"()" 解释为字符串 "o" ,"(al)" 解释为字符串 "al"。command 由 "G"、"()" 和/或 "(al)" 按某种顺序组成。输入:command = "(al)G(al)()()G"输入:command = "G()()()()(al)"输入:command = "G()(al)"输出:"alGalooG"输出:"Gooooal"原创 2022-11-06 00:15:58 · 115 阅读 · 0 评论 -
leetcode 754. 到达终点数字
在一根无限长的数轴上,你站在0的位置。终点在target的位置。你可以做一些数量的移动 numMoves :每次你可以选择向左或向右移动。第 i 次移动(从 i == 1 开始,到 i == numMoves ),在选择的方向上走 i 步。给定整数 target ,返回 到达目标所需的 最小 移动次数(即最小 numMoves ) 。示例 1:输入: target = 2输出: 3解释:第一次移动,从 0 到 1 。第二次移动,从 1 到 -1 。第三次移动,从 -1 到 2 。示例 2:原创 2022-11-04 12:32:41 · 196 阅读 · 0 评论 -
leetcode 1668. 最大重复子字符串
单词 word 的 最大重复值 是单词 word 在 sequence 中最大的重复值。解释:"ba" 是 "ababc" 的子字符串,但 "baba" 不是 "ababc" 的子字符串。输入:sequence = "ababc", word = "ab"输入:sequence = "ababc", word = "ba"输入:sequence = "ababc", word = "ac"解释:"abab" 是 "ababc" 的子字符串。解释:"ac" 不是 "ababc" 的子字符串。原创 2022-11-03 22:14:13 · 222 阅读 · 0 评论 -
leetcode 1620. 网络信号最好的坐标
数组 towers 中包含一些网络信号塔,其中 towers[i] = [xi, yi, qi] 表示第 i 个网络信号塔的坐标是 (xi, yi) 且信号强度参数为 qi。如果第 i 个塔能到达 (x, y) ,那么该塔在此处的信号为 ⌊qi / (1 + d)⌋ ,其中 d 是塔跟此坐标的距离。输入:towers = [[1,2,13],[2,1,7],[0,1,9]], radius = 2。输入:towers = [[1,2,5],[2,1,7],[3,1,9]], radius = 2。原创 2022-11-02 13:02:34 · 174 阅读 · 0 评论