
LeetCode
liulizhi1996
这个作者很懒,什么都没留下…
展开
-
LeetCode 596. 超过5名学生的课
有一个courses 表 ,有: student(学生) 和 class (课程)。请列出所有超过或等于5名学生的课。例如,表:+---------+------------+| student | class |+---------+------------+| A | Math || B | English || C | Math || D | Biology || E ...原创 2021-07-25 20:58:04 · 258 阅读 · 0 评论 -
LeetCode 620. 有趣的电影
某城市开了一家新的电影院,吸引了很多人过来看电影。该电影院特别注意用户体验,专门有个 LED显示板做电影推荐,上面公布着影评和相关电影描述。作为该电影院的信息部主管,您需要编写一个 SQL查询,找出所有影片描述为非boring(不无聊)的并且 id 为奇数的影片,结果请按等级 rating 排列。例如,下表 cinema:+---------+-----------+--------------+-----------+| id | movie | descri...原创 2021-07-22 16:53:04 · 353 阅读 · 0 评论 -
LeetCode 197. 上升的温度
表 Weather+---------------+---------+| Column Name | Type |+---------------+---------+| id | int || recordDate | date || temperature | int |+---------------+---------+id 是这个表的主键该表包含特定日期的温度信息编写一个 SQL 查询,来查找与之前(昨天...原创 2021-07-22 16:41:42 · 249 阅读 · 0 评论 -
LeetCode 196. 删除重复的电子邮箱
编写一个 SQL 查询,来删除Person表中所有重复的电子邮箱,重复的邮箱里只保留Id最小的那个。+----+------------------+| Id | Email |+----+------------------+| 1 | john@example.com || 2 | bob@example.com || 3 | john@example.com |+----+------------------+Id 是这个表的主键。例如,在运...原创 2021-07-22 16:34:29 · 211 阅读 · 0 评论 -
LeetCode 184. 部门工资最高的员工
Employee 表包含所有员工信息,每个员工有其对应的Id, salary 和 department Id。+----+-------+--------+--------------+| Id | Name | Salary | DepartmentId |+----+-------+--------+--------------+| 1 | Joe | 70000 | 1 || 2 | Jim | 90000 | 1 || 3...原创 2021-07-22 16:11:00 · 215 阅读 · 0 评论 -
LeetCode 183. 从不订购的客户
某网站包含两个表,Customers 表和 Orders 表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。Customers 表:+----+-------+| Id | Name |+----+-------+| 1 | Joe || 2 | Henry || 3 | Sam || 4 | Max |+----+-------+Orders 表:+----+------------+| Id | CustomerId |+----+----...原创 2021-07-22 16:00:18 · 218 阅读 · 0 评论 -
LeetCode 181. 超过经理收入的员工
Employee表包含所有员工,他们的经理也属于员工。每个员工都有一个 Id,此外还有一列对应员工的经理的 Id。+----+-------+--------+-----------+| Id | Name | Salary | ManagerId |+----+-------+--------+-----------+| 1 | Joe | 70000 | 3 || 2 | Henry | 80000 | 4 || 3 | Sam | 6...原创 2021-07-22 15:56:52 · 275 阅读 · 0 评论 -
LeetCode 182. 查找重复的电子邮箱
编写一个 SQL 查询,查找Person 表中所有重复的电子邮箱。示例:+----+---------+| Id | Email |+----+---------+| 1 | a@b.com || 2 | c@d.com || 3 | a@b.com |+----+---------+根据以上输入,你的查询应返回以下结果:+---------+| Email |+---------+| a@b.com |+---------+说明:所有电子邮箱都是小写字母...原创 2021-07-22 15:47:16 · 408 阅读 · 0 评论 -
LeetCode 176. 第二高的薪水
编写一个 SQL 查询,获取 Employee表中第二高的薪水(Salary)。+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+例如上述Employee表,SQL查询应该返回200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。+---------------------+| SecondHi...原创 2021-07-22 15:37:11 · 241 阅读 · 0 评论 -
LeetCode 175. 组合两个表
表1: Person+-------------+---------+| 列名 | 类型 |+-------------+---------+| PersonId | int || FirstName | varchar || LastName | varchar |+-------------+---------+PersonId 是上表主键表2: Address+-------------+---------+| 列名 ...原创 2021-07-22 15:22:29 · 211 阅读 · 0 评论 -
LeetCode 1577. 数的平方等于两数乘积的方法数
给你两个整数数组 nums1 和 nums2 ,请你返回根据以下规则形成的三元组的数目(类型 1 和类型 2 ):类型 1:三元组 (i, j, k) ,如果 nums1[i]2== nums2[j] * nums2[k] 其中 0 <= i < nums1.length 且 0 <= j < k < nums2.length类型 2:三元组 (i, j, k) ,如果 nums2[i]2== nums1[j] * nums1[k] 其中 0 <= i <..原创 2020-09-10 15:31:38 · 378 阅读 · 0 评论 -
LeetCode 474. 一和零
在计算机界中,我们总是追求用有限的资源获取最大的收益。现在,假设你分别支配着 m 个0和 n 个1。另外,还有一个仅包含0和1字符串的数组。你的任务是使用给定的m 个0和 n 个1,找到能拼出存在于数组中的字符串的最大数量。每个0和1至多被使用一次。注意:给定0和1的数量都不会超过100。给定字符串数组的长度不会超过600。示例 1:输入: Array = {"10", "0001", "111001", "1", "0"}, m = 5,...原创 2020-09-10 14:47:46 · 252 阅读 · 0 评论 -
LeetCode 1496. 判断路径是否相交
给你一个字符串 path,其中 path[i] 的值可以是 'N'、'S'、'E' 或者 'W',分别表示向北、向南、向东、向西移动一个单位。机器人从二维平面上的原点 (0, 0) 处开始出发,按 path 所指示的路径行走。如果路径在任何位置上出现相交的情况,也就是走到之前已经走过的位置,请返回 True ;否则,返回 False 。示例 1:输入:path = "NES"输出:false解释:该路径没有在任何位置相交。示例 2:输入:path = "NESWW"输出:..原创 2020-08-25 16:45:34 · 334 阅读 · 0 评论 -
LeetCode 1556. 千位分隔数
给你一个整数n,请你每隔三位添加点(即 "." 符号)作为千位分隔符,并将结果以字符串格式返回。示例 1:输入:n = 987输出:"987"示例 2:输入:n = 1234输出:"1.234"示例 3:输入:n = 123456789输出:"123.456.789"示例 4:输入:n = 0输出:"0"提示:0 <= n < 2^31class Solution {public: string thousandSepa...原创 2020-08-25 16:25:27 · 443 阅读 · 0 评论 -
LeetCode 1558. 得到目标数组的最少函数调用次数
给你一个与 nums大小相同且初始值全为 0 的数组 arr ,请你调用以上函数得到整数数组 nums。请你返回将 arr变成 nums的最少函数调用次数。答案保证在 32 位有符号整数以内。示例 1:输入:nums = [1,5]输出:5解释:给第二个数加 1 :[0, 0] 变成 [0, 1] (1 次操作)。将所有数字乘以 2 :[0, 1] -> [0, 2] -> [0, 4] (2 次操作)。给两个数字都加 1 :[0, 4] -> [...原创 2020-08-25 16:17:31 · 323 阅读 · 0 评论 -
LeetCode 1557. 可以到达所有点的最少点数目
给你一个 有向无环图, n个节点编号为 0到 n-1,以及一个边数组 edges,其中 edges[i] = [fromi, toi]表示一条从点fromi到点toi的有向边。找到最小的点集使得从这些点出发能到达图中所有点。题目保证解存在且唯一。你可以以任意顺序返回这些节点编号。示例 1:输入:n = 6, edges = [[0,1],[0,2],[2,5],[3,4],[4,2]]输出:[0,3]解释:从单个节点出发无法到达所有节点。从 0 出发我们可...原创 2020-08-25 16:03:11 · 355 阅读 · 0 评论 -
LeetCode 1437. 是否所有 1 都至少相隔 k 个元素
给你一个由若干 0 和 1 组成的数组 nums 以及整数 k。如果所有 1 都至少相隔 k 个元素,则返回 True ;否则,返回 False 。示例 1:输入:nums = [1,0,0,0,1,0,0,1], k = 2输出:true解释:每个 1 都至少相隔 2 个元素。示例 2:输入:nums = [1,0,0,1,0,1], k = 2输出:false解释:第二个 1 和第三个 1 之间只隔了 1 个元素。示例 3:输入:nums = [1,1,1,1,.原创 2020-08-07 10:54:48 · 320 阅读 · 0 评论 -
LeetCode 1436. 旅行终点站
给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 paths[i] = [cityAi, cityBi] 表示该线路将会从 cityAi 直接前往 cityBi 。请你找出这次旅行的终点站,即没有任何可以通往其他城市的线路的城市。题目数据保证线路图会形成一条不存在循环的线路,因此只会有一个旅行终点站。示例 1:输入:paths = [["London","New York"],["New York","Lima"],["Lima","Sao Paulo"]]输出:".原创 2020-08-07 10:47:02 · 258 阅读 · 0 评论 -
LeetCode 1447. 最简分数
给你一个整数n,请你返回所有 0 到 1 之间(不包括 0 和 1)满足分母小于等于n的 最简分数。分数可以以 任意顺序返回。示例 1:输入:n = 2输出:["1/2"]解释:"1/2" 是唯一一个分母小于等于 2 的最简分数。示例 2:输入:n = 3输出:["1/2","1/3","2/3"]示例 3:输入:n = 4输出:["1/2","1/3","1/4","2/3","3/4"]解释:"2/4" 不是最简分数,因为它可以化简为 "1/2" 。...原创 2020-08-06 09:06:03 · 693 阅读 · 0 评论 -
LeetCode 1457. 二叉树中的伪回文路径
给你一棵二叉树,每个节点的值为 1 到 9 。我们称二叉树中的一条路径是 「伪回文」的,当它满足:路径经过的所有节点值的排列中,存在一个回文序列。请你返回从根到叶子节点的所有路径中伪回文路径的数目。示例 1:输入:root = [2,3,1,3,1,null,1]输出:2解释:上图为给定的二叉树。总共有 3 条从根到叶子的路径:红色路径 [2,3,3] ,绿色路径 [2,1,1] 和路径 [2,3,1] 。 在这些路径中,只有红色和绿色的路径是伪回文路径,因为红色路...原创 2020-08-06 09:05:58 · 258 阅读 · 0 评论 -
LeetCode 1458. 两个子序列的最大点积
给你两个数组nums1和nums2。请你返回 nums1 和 nums2 中两个长度相同的 非空 子序列的最大点积。数组的非空子序列是通过删除原数组中某些元素(可能一个也不删除)后剩余数字组成的序列,但不能改变数字间相对顺序。比方说,[2,3,5]是[1,2,3,4,5]的一个子序列而[1,5,3]不是。示例 1:输入:nums1 = [2,1,-2,5], nums2 = [3,0,-6]输出:18解释:从 nums1 中得到子序列 [2,-2] ,从 nums...原创 2020-08-06 09:05:49 · 286 阅读 · 0 评论 -
LeetCode 1481. 不同整数的最少数目
给你一个整数数组 arr 和一个整数 k 。现需要从数组中恰好移除 k 个元素,请找出移除后数组中不同整数的最少数目。示例 1:输入:arr = [5,5,4], k = 1输出:1解释:移除 1 个 4 ,数组中只剩下 5 一种整数。示例 2:输入:arr = [4,3,1,1,3,3,2], k = 3输出:2解释:先移除 4、2 ,然后再移除两个 1 中的任意 1 个或者三个 3 中的任意 1 个,最后剩下 1 和 3 两种整数。提示:1 <= arr.l..原创 2020-08-06 09:05:42 · 373 阅读 · 0 评论 -
LeetCode 1498. 满足条件的子序列数目
给你一个整数数组 nums 和一个整数 target 。请你统计并返回 nums 中能满足其最小元素与最大元素的 和 小于或等于 target 的 非空 子序列的数目。由于答案可能很大,请将结果对 10^9 + 7 取余后返回。示例 1:输入:nums = [3,5,6,7], target = 9输出:4解释:有 4 个子序列满足该条件。[3] -> 最小元素 + 最大元素 <= target (3 + 3 <= 9)[3,5] -> (3 + 5 &.原创 2020-08-06 09:05:36 · 359 阅读 · 0 评论 -
LeetCode 1497. 检查数组对是否可以被 k 整除
给你一个整数数组 arr 和一个整数 k ,其中数组长度是偶数,值为 n 。现在需要把数组恰好分成 n /2 对,以使每对数字的和都能够被 k 整除。如果存在这样的分法,请返回 True ;否则,返回 False 。示例 1:输入:arr = [1,2,3,4,5,10,6,7,8,9], k = 5输出:true解释:划分后的数字对为 (1,9),(2,8),(3,7),(4,6) 以及 (5,10) 。示例 2:输入:arr = [1,2,3,4,5,6], k = 7..原创 2020-08-06 09:05:29 · 434 阅读 · 0 评论 -
LeetCode 1509. 三次操作后最大值与最小值的最小差
给你一个数组nums,每次操作你可以选择nums中的任意一个元素并将它改成任意值。请你返回三次操作后, nums中最大值与最小值的差的最小值。示例 1:输入:nums = [5,3,2,4]输出:0解释:将数组 [5,3,2,4] 变成 [2,2,2,2].最大值与最小值的差为 2-2 = 0 。示例 2:输入:nums = [1,5,0,10,14]输出:1解释:将数组 [1,5,0,10,14] 变成 [1,1,0,1,1] 。最大值与最小值的差为 1-0 ...原创 2020-08-06 09:05:22 · 403 阅读 · 0 评论 -
LeetCode 650. 只有两个键的键盘
最初在一个记事本上只有一个字符 'A'。你每次可以对这个记事本进行两种操作:Copy All (复制全部) : 你可以复制这个记事本中的所有字符(部分的复制是不允许的)。Paste (粘贴) : 你可以粘贴你上一次复制的字符。给定一个数字n。你需要使用最少的操作次数,在记事本中打印出恰好n个 'A'。输出能够打印出n个 'A' 的最少操作次数。示例 1:输入: 3输出: 3解释:最初, 我们只有一个字符 'A'。第 1 步, 我们使用 Copy All 操作。第 2 步...原创 2020-08-06 09:05:15 · 218 阅读 · 0 评论 -
LeetCode 1139. 最大的以 1 为边界的正方形
给你一个由若干 0 和 1 组成的二维网格grid,请你找出边界全部由 1 组成的最大 正方形 子网格,并返回该子网格中的元素数量。如果不存在,则返回 0。示例 1:输入:grid = [[1,1,1],[1,0,1],[1,1,1]]输出:9示例 2:输入:grid = [[1,1,0,0]]输出:1提示:1 <= grid.length <= 1001 <= grid[0].length <= 100grid[i][j] 为0或1...原创 2020-08-05 13:45:00 · 223 阅读 · 0 评论 -
LeetCode 1525. 字符串的好分割数目
给你一个字符串s,一个分割被称为 「好分割」当它满足:将s分割成 2 个字符串p 和q,它们连接起来等于s且 p和 q中不同字符的数目相同。请你返回 s中好分割的数目。示例 1:输入:s = "aacaba"输出:2解释:总共有 5 种分割字符串 "aacaba" 的方法,其中 2 种是好分割。("a", "acaba") 左边字符串和右边字符串分别包含 1 个和 3 个不同的字符。("aa", "caba") 左边字符串和右边字符串分别包含 1 个和 3...原创 2020-08-05 13:44:53 · 312 阅读 · 0 评论 -
LeetCode 1461. 检查一个字符串是否包含所有长度为 K 的二进制子串
给你一个二进制字符串s和一个整数k。如果所有长度为 k的二进制字符串都是 s的子串,请返回 True ,否则请返回 False 。示例 1:输入:s = "00110110", k = 2输出:true解释:长度为 2 的二进制串包括 "00","01","10" 和 "11"。它们分别是 s 中下标为 0,1,3,2 开始的长度为 2 的子串。示例 2:输入:s = "00110", k = 2输出:true示例 3:输入:s = "0110", k = 1...原创 2020-08-05 13:44:47 · 394 阅读 · 0 评论 -
LeetCode 1524. 和为奇数的子数组数目
给你一个整数数组arr。请你返回和为 奇数的子数组数目。由于答案可能会很大,请你将结果对10^9 + 7取余后返回。示例 1:输入:arr = [1,3,5]输出:4解释:所有的子数组为 [[1],[1,3],[1,3,5],[3],[3,5],[5]] 。所有子数组的和为 [1,4,9,3,8,5].奇数和包括 [1,9,3,5] ,所以答案为 4 。示例 2 :输入:arr = [2,4,6]输出:0解释:所有子数组为 [[2],[2,4],[2,4,6],...原创 2020-08-05 13:44:41 · 333 阅读 · 0 评论 -
LeetCode 1508. 子数组和排序后的区间和
给你一个数组nums,它包含n个正整数。你需要计算所有非空连续子数组的和,并将它们按升序排序,得到一个新的包含n * (n + 1) / 2个数字的数组。请你返回在新数组中下标为left到right (下标从 1 开始)的所有数字和(包括左右端点)。由于答案可能很大,请你将它对 10^9 + 7 取模后返回。示例 1:输入:nums = [1,2,3,4], n = 4, left = 1, right = 5输出:13解释:所有的子数组和为 1, 3, 6, 10...原创 2020-08-05 13:44:35 · 360 阅读 · 0 评论 -
LeetCode 1535. 找出数组游戏的赢家
给你一个由 不同 整数组成的整数数组 arr 和一个整数 k 。每回合游戏都在数组的前两个元素(即 arr[0] 和 arr[1] )之间进行。比较 arr[0] 与 arr[1] 的大小,较大的整数将会取得这一回合的胜利并保留在位置 0 ,较小的整数移至数组的末尾。当一个整数赢得 k 个连续回合时,游戏结束,该整数就是比赛的 赢家 。返回赢得比赛的整数。题目数据 保证 游戏存在赢家。示例 1:输入:arr = [2,1,3,5,4,6,7], k = 2输出:5解释:一起看一.原创 2020-08-05 13:44:29 · 556 阅读 · 0 评论 -
LeetCode 1448. 统计二叉树中好节点的数目
给你一棵根为root的二叉树,请你返回二叉树中好节点的数目。「好节点」X 定义为:从根到该节点 X 所经过的节点中,没有任何节点的值大于 X 的值。示例 1:输入:root = [3,1,4,3,null,1,5]输出:4解释:图中蓝色节点为好节点。根节点 (3) 永远是个好节点。节点 4 -> (3,4) 是路径中的最大值。节点 5 -> (3,4,5) 是路径中的最大值。节点 3 -> (3,1,3) 是路径中的最大值。示例 2:输入:r...原创 2020-08-05 13:44:19 · 321 阅读 · 0 评论 -
LeetCode 1514. 概率最大的路径
给你一个由 n 个节点(下标从 0 开始)组成的无向加权图,该图由一个描述边的列表组成,其中 edges[i] = [a, b] 表示连接节点 a 和 b 的一条无向边,且该边遍历成功的概率为 succProb[i] 。指定两个节点分别作为起点 start 和终点 end ,请你找出从起点到终点成功概率最大的路径,并返回其成功概率。如果不存在从 start 到 end 的路径,请 返回 0 。只要答案与标准答案的误差不超过 1e-5 ,就会被视作正确答案。示例 1:输入:n = 3.原创 2020-08-05 13:44:12 · 417 阅读 · 0 评论 -
LeetCode 1418. 点菜展示表
给你一个数组 orders,表示客户在餐厅中完成的订单,确切地说, orders[i]=[customerNamei,tableNumberi,foodItemi] ,其中 customerNamei 是客户的姓名,tableNumberi 是客户所在餐桌的桌号,而 foodItemi 是客户点的餐品名称。请你返回该餐厅的 点菜展示表 。在这张表中,表中第一行为标题,其第一列为餐桌桌号 “Table” ,后面每一列都是按字母顺序排列的餐品名称。接下来每一行中的项则表示每张餐桌订购的相应餐品数量,第一列应原创 2020-08-05 13:44:07 · 244 阅读 · 0 评论 -
LeetCode 1417. 重新格式化字符串
给你一个混合了数字和字母的字符串 s,其中的字母均为小写英文字母。请你将该字符串重新格式化,使得任意两个相邻字符的类型都不同。也就是说,字母后面应该跟着数字,而数字后面应该跟着字母。请你返回 重新格式化后 的字符串;如果无法按要求重新格式化,则返回一个 空字符串 。示例 1:输入:s = "a0b1c2"输出:"0a1b2c"解释:"0a1b2c" 中任意两个相邻字符的类型都不同。 "a0b1c2", "0a1b2c", "0c2a1b" 也是满足题目要求的答案。示例 2:输.原创 2020-08-05 13:43:58 · 235 阅读 · 0 评论 -
LeetCode 1487. 保证文件名唯一
给你一个长度为 n 的字符串数组 names 。你将会在文件系统中创建 n 个文件夹:在第 i 分钟,新建名为 names[i] 的文件夹。由于两个文件 不能 共享相同的文件名,因此如果新建文件夹使用的文件名已经被占用,系统会以 (k) 的形式为新文件夹的文件名添加后缀,其中 k 是能保证文件名唯一的 最小正整数 。返回长度为 n 的字符串数组,其中 ans[i] 是创建第 i 个文件夹时系统分配给该文件夹的实际名称。示例 1:输入:names = ["pes","fifa","gta.原创 2020-08-04 10:11:37 · 366 阅读 · 0 评论 -
LeetCode 1486. 数组异或操作
给你两个整数,n 和 start 。数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length 。请返回 nums 中所有元素按位异或(XOR)后得到的结果。示例 1:输入:n = 5, start = 0输出:8解释:数组 nums 为 [0, 2, 4, 6, 8],其中 (0 ^ 2 ^ 4 ^ 6 ^ 8) = 8 。 "^" 为按位异或 XOR 运算符。示例 2:输入:n = 4, start...原创 2020-08-04 10:10:42 · 277 阅读 · 0 评论 -
LeetCode 1503. 所有蚂蚁掉下来前的最后一刻
有一块木板,长度为 n 个 单位 。一些蚂蚁在木板上移动,每只蚂蚁都以 每秒一个单位 的速度移动。其中,一部分蚂蚁向 左 移动,其他蚂蚁向 右 移动。当两只向 不同 方向移动的蚂蚁在某个点相遇时,它们会同时改变移动方向并继续移动。假设更改方向不会花费任何额外时间。而当蚂蚁在某一时刻 t 到达木板的一端时,它立即从木板上掉下来。给你一个整数 n 和两个整数数组 left 以及 right 。两个数组分别标识向左或者向右移动的蚂蚁在 t = 0 时的位置。请你返回最后一只蚂蚁从木板上掉下来的时刻。原创 2020-08-04 10:09:54 · 399 阅读 · 0 评论 -
LeetCode 1502. 判断能否形成等差数列
给你一个数字数组 arr 。如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 。如果可以重新排列数组形成等差数列,请返回 true ;否则,返回 false 。示例 1:输入:arr = [3,5,1]输出:true解释:对数组重新排序得到 [1,3,5] 或者 [5,3,1] ,任意相邻两项的差分别为 2 或 -2 ,可以形成等差数列。示例 2:输入:arr = [1,2,4]输出:false解释:无法通过重新排序得到等差数列。提示..原创 2020-08-04 10:08:29 · 277 阅读 · 0 评论