![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode刷题
老卫带你学
专注AI,云计算
展开
-
老卫带你学---leetcode刷题(380. O(1) 时间插入、删除和获取随机元素)
实现RandomizedSet 类:RandomizedSet() 初始化 RandomizedSet 对象bool insert(int val) 当元素 val 不存在时,向集合中插入该项,并返回 true;否则,返回 false。bool remove(int val) 当元素 val 存在时,从集合中移除该项,并返回 true;否则,返回 false。int getRandom() 随机返回现有集合中的一项(测试用例保证调用此方法时集合中至少存在一个元素)。原创 2024-03-16 20:54:55 · 364 阅读 · 0 评论 -
老卫带你学---leetcode刷题(378. 有序矩阵中第 K 小的元素)
给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。请注意,它是 排序后 的第 k 小元素,而不是第 k 个 不同 的元素。你必须找到一个内存复杂度优于 O(n2) 的解决方案。原创 2024-03-16 12:48:39 · 373 阅读 · 0 评论 -
老卫带你学---leetcode刷题(328. 奇偶链表)
给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数 ,以此类推。请注意,偶数组和奇数组内部的相对顺序应该与输入时保持一致。你必须在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题。示例 1:输入: head = [1,2,3,4,5]输出: [1,3,5,2,4]示例 2:输入: head = [2,1,3,5,6,4,7]原创 2024-03-15 23:19:44 · 330 阅读 · 0 评论 -
老卫带你学---leetcode刷题(204. 计数质数)
示例 1:输入:n = 10输出:4解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7。示例 2:输入:n = 0输出:0示例 3:输入:n = 1输出:0。原创 2024-03-15 22:10:40 · 343 阅读 · 0 评论 -
老卫带你学---leetcode刷题(189. 轮转数组)
给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。原创 2024-03-15 20:43:15 · 399 阅读 · 0 评论 -
老卫带你学---leetcode刷题(98. 验证二叉搜索树)
给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。原创 2023-10-18 22:52:44 · 67 阅读 · 0 评论 -
老卫带你学---leetcode刷题(96. 不同的二叉搜索树)
给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。原创 2023-10-18 22:22:53 · 100 阅读 · 0 评论 -
老卫带你学---leetcode刷题(76. 最小覆盖子串)
给你一个字符串 s 、一个字符串 t。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “”。注意:对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。如果 s 中存在这样的子串,我们保证它是唯一的答案。原创 2023-10-07 22:21:04 · 108 阅读 · 0 评论 -
老卫带你学---leetcode刷题(72. 编辑距离)
给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符。原创 2023-10-07 20:01:52 · 110 阅读 · 0 评论 -
老卫带你学---leetcode刷题(62. 不同路径)
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?原创 2023-10-18 13:19:32 · 72 阅读 · 0 评论 -
老卫带你学---leetcode刷题(55. 跳跃游戏)
给你一个非负整数数组 nums ,你最初位于数组的 第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回 true;否则,返回 false。原创 2023-10-18 12:30:03 · 70 阅读 · 0 评论 -
老卫带你学---leetcode刷题(49. 字母异位词分组)
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。原创 2023-10-18 12:20:08 · 69 阅读 · 0 评论 -
老卫带你学---leetcode刷题(48. 旋转图像)
给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。原创 2023-10-18 11:50:33 · 78 阅读 · 0 评论 -
老卫带你学---leetcode刷题(33. 搜索旋转排序数组)
整数数组 nums 按升序排列,数组中的值 互不相同。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2]。原创 2023-10-09 08:37:47 · 65 阅读 · 0 评论 -
老卫带你学---leetcode刷题(32. 最长有效括号)
给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。原创 2023-10-07 10:54:22 · 46 阅读 · 0 评论 -
老卫带你学---leetcode刷题(15. 三数之和)
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= j、i!= k 且 j!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。请你返回所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。原创 2023-10-08 10:40:07 · 43 阅读 · 0 评论 -
老卫带你学---leetcode刷题(10. 正则表达式匹配)
给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。原创 2023-10-06 21:43:46 · 74 阅读 · 0 评论 -
老卫带你学---leetcode刷题(4. 寻找两个正序数组的中位数)
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数。算法的时间复杂度应该为 O(log (m+n))。原创 2023-10-05 21:17:39 · 192 阅读 · 0 评论 -
老卫带你学---leetcode刷题(1109. 航班预订统计)
这里有 n 个航班,它们分别从 1 到 n 进行编号。有一份航班预订表 bookings ,表中第 i 条预订记录 bookings[i] = [firsti, lasti, seatsi] 意味着在从 firsti 到 lasti (包含 firsti 和 lasti )的 每个航班 上预订了 seatsi 个座位。请你返回一个长度为 n 的数组 answer,里面的元素是每个航班预定的座位总数。原创 2024-03-07 21:02:32 · 378 阅读 · 0 评论 -
老卫带你学---leetcode刷题(179. 最大数)
给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。示例 1:输入:nums = [10,2]输出:“210”示例 2:输入:nums = [3,30,34,5,9]输出:“9534330”原创 2024-03-02 20:32:53 · 376 阅读 · 0 评论 -
老卫带你学---leetcode刷题(172. 阶乘后的零)
给定一个整数 n ,返回 n!结果中尾随零的数量。提示 n!示例 1:输入:n = 3输出:0解释:3!= 6 ,不含尾随 0示例 2:输入:n = 5输出:1解释:5!= 120 ,有一个尾随 0示例 3:输入:n = 0输出:0。原创 2024-03-02 20:15:06 · 371 阅读 · 0 评论 -
老卫带你学---leetcode刷题(166. 分数到小数)
给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以 字符串形式返回小数。如果小数部分为循环小数,则将循环的部分括在括号内。如果存在多个答案,只需返回 任意一个。对于所有给定的输入,保证 答案字符串的长度小于 104。原创 2024-03-02 20:03:15 · 393 阅读 · 0 评论 -
老卫带你学---leetcode刷题(162. 寻找峰值)
峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。你可以假设 nums[-1] = nums[n] = -∞。你必须实现时间复杂度为 O(log n) 的算法来解决此问题。示例 1:输入:nums = [1,2,3,1]输出:2解释:3 是峰值元素,你的函数应该返回其索引 2。示例 2:输入:nums = [1,2,1,3,5,6,4]输出:1 或 5。原创 2024-03-02 19:44:59 · 364 阅读 · 0 评论 -
老卫带你学---leetcode刷题(138. 随机链表的复制)
给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。构造这个链表的 深拷贝。深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点。例如,如果原链表中有 X 和 Y 两个节点,其中 X.random --> Y。原创 2024-03-02 18:56:46 · 324 阅读 · 0 评论 -
老卫带你学---leetcode刷题(150. 逆波兰表达式求值)
给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。请你计算该表达式。返回一个表示表达式值的整数。注意:有效的算符为 ‘+’、‘-’、‘*’ 和 ‘/’。每个操作数(运算对象)都可以是一个整数或者另一个表达式。两个整数之间的除法总是 向零截断。表达式中不含除零运算。输入是一个根据逆波兰表示法表示的算术表达式。答案及所有中间计算结果可以用 32 位 整数表示。示例 1:输入:tokens = [“2”,“1”,“+”,“3”,“*”]输出:9。原创 2024-03-02 18:25:53 · 337 阅读 · 0 评论 -
老卫带你学---leetcode刷题(134. 加油站)
在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。给定两个整数数组 gas 和 cost ,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。如果存在解,则 保证 它是 唯一 的。原创 2024-03-02 17:27:53 · 367 阅读 · 0 评论 -
老卫带你学---leetcode刷题(131. 分割回文串)
给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串。返回 s 所有可能的分割方案。回文串 是正着读和反着读都一样的字符串。示例 1:输入:s = “aab”输出:[[“a”,“a”,“b”],[“aa”,“b”]]示例 2:输入:s = “a”输出:[[“a”]]原创 2024-03-02 15:24:18 · 335 阅读 · 0 评论 -
老卫带你学---leetcode刷题(412. Fizz Buzz)
给你一个整数 n ,找出从 1 到 n 各个整数的 Fizz Buzz 表示,并用字符串数组 answer(下标从 1 开始)返回结果,其中:answer[i] == “FizzBuzz” 如果 i 同时是 3 和 5 的倍数。answer[i] == “Fizz” 如果 i 是 3 的倍数。answer[i] == “Buzz” 如果 i 是 5 的倍数。answer[i] == i (以字符串形式)如果上述条件全不满足。示例 1:输入:n = 3。原创 2024-03-01 23:34:53 · 311 阅读 · 0 评论 -
老卫带你学---leetcode刷题(387. 字符串中的第一个唯一字符)
给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。示例 1:输入: s = “leetcode”输出: 0示例 2:输入: s = “loveleetcode”输出: 2示例 3:输入: s = “aabb”输出: -1提示:s 只包含小写字母。原创 2024-03-01 23:29:09 · 310 阅读 · 0 评论 -
老卫带你学---leetcode刷题(350. 两个数组的交集 II)
给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。原创 2024-03-01 23:20:29 · 363 阅读 · 0 评论 -
老卫带你学---leetcode刷题(326. 3 的幂)
给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true;否则,返回 false。原创 2024-03-01 23:09:10 · 424 阅读 · 0 评论 -
老卫带你学---leetcode刷题(268. 丢失的数字)
给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。示例 1:输入:nums = [3,0,1]输出:2解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。示例 2:输入:nums = [0,1]输出:2解释:n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失的数字,因为它没有出现在 nums 中。原创 2024-03-01 23:00:49 · 391 阅读 · 0 评论 -
老卫带你学---leetcode刷题(242. 有效的字母异位词)
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false提示:s 和 t 仅包含小写字母进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?原创 2024-03-01 21:01:18 · 356 阅读 · 0 评论 -
老卫带你学---leetcode刷题(202. 快乐数)
快乐数」 定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1,那么这个数就是快乐数。如果 n 是 快乐数 就返回 true;不是,则返回 false。示例 1:输入:n = 19输出:true解释:示例 2:输入:n = 2输出:false。原创 2024-02-29 22:45:14 · 322 阅读 · 0 评论 -
老卫带你学---leetcode刷题(191. 位1的个数)
编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在 示例 3 中,输入表示有符号整数 -3。原创 2024-02-29 22:33:43 · 343 阅读 · 0 评论 -
老卫带你学---leetcode刷题(190. 颠倒二进制位)
颠倒给定的 32 位无符号整数的二进制位。提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在 示例 2 中,输入表示有符号整数 -3,输出表示有符号整数 -1073741825。示例 1:输入:n = 00000010100101000001111010011100。原创 2024-02-29 22:27:37 · 352 阅读 · 0 评论 -
老卫带你学---leetcode刷题(171. Excel 表列序号)
给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回 该列名称对应的列序号。例如:A -> 1B -> 2C -> 3Z -> 26AA -> 27AB -> 28示例 1:输入: columnTitle = “A”输出: 1示例 2:输入: columnTitle = “AB”输出: 28示例 3:输入: columnTitle = “ZY”输出: 701。原创 2024-02-29 22:16:57 · 355 阅读 · 0 评论 -
老卫带你学---leetcode刷题(130. 被围绕的区域)
给你一个 m x n 的矩阵 board ,由若干字符 ‘X’ 和 ‘O’ ,找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。示例 1:输入:board = [[“X”,“X”,“X”,“X”],[“X”,“O”,“O”,“X”],[“X”,“X”,“O”,“X”],[“X”,“O”,“X”,“X”]]输出:[[“X”,“X”,“X”,“X”],[“X”,“X”,“X”,“X”],[“X”,“X”,“X”,“X”],[“X”,“O”,“X”,“X”]]原创 2024-02-29 22:02:06 · 367 阅读 · 0 评论 -
老卫带你学---leetcode刷题(125. 验证回文串)
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串。字母和数字都属于字母数字字符。给你一个字符串 s,如果它是 回文串 ,返回 true;否则,返回 false。示例 1:输入: s = “A man, a plan, a canal: Panama”输出:true解释:“amanaplanacanalpanama” 是回文串。示例 2:输入:s = “race a car”输出:false。原创 2024-02-29 20:54:40 · 328 阅读 · 0 评论 -
老卫带你学---leetcode刷题(118. 杨辉三角)
给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。示例 1:输入: numRows = 5输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2:输入: numRows = 1输出: [[1]]原创 2024-02-28 21:52:48 · 364 阅读 · 0 评论