![](https://img-blog.csdnimg.cn/4f4211c94f144212a2734f1bfcb65ecb.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
LeetCode
文章平均质量分 63
LeetCode题解
小七mod
脚踏实地,仰望星空
展开
-
【LeetCode】字符串转换整数 (atoi) [M](模拟)
LeetCode 8:请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数。采用模拟求解。原创 2023-05-25 16:13:15 · 809 阅读 · 0 评论 -
【LeetCode】螺旋矩阵 [M](数组)
LeetCode 54:给定一个长方形矩阵matrix,实现转圈打印。采用模拟求解。原创 2023-03-07 10:55:41 · 348 阅读 · 0 评论 -
【LeetCode】划分字母区间 [M](贪心)
LeetCode 763:给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。返回一个表示每个字符串片段的长度的列表。采用贪心求解。原创 2023-02-24 09:40:44 · 187 阅读 · 0 评论 -
【LeetCode】每日温度 [M](单调栈)
LeetCode 739:给定一个整数数组temperatures,表示每天的温度,返回一个数组answer,其中answer[i]是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用0 来代替。采用单调栈求解。原创 2023-02-23 15:58:41 · 123 阅读 · 0 评论 -
【LeetCode】回文子串 [M](Manacher算法)
LeetCode 647:给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。采用Manacher算法求解。原创 2023-02-23 14:32:18 · 163 阅读 · 0 评论 -
【LeetCode】任务调度器 [M](贪心)
LeetCode 621:计算完成所有任务所需要的 最短时间 。采用贪心求解。原创 2023-02-22 17:21:05 · 596 阅读 · 0 评论 -
【LeetCode】和为 K 的子数组 [M](数组)
LeetCode 560:给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的连续子数组的个数 。采用前缀和定律求解。原创 2023-02-21 17:14:21 · 218 阅读 · 0 评论 -
【LeetCode】二叉树的直径 [E](二叉树)
LeetCode 543:给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。采用二叉树递归求解。原创 2023-02-21 11:14:34 · 352 阅读 · 0 评论 -
【LeetCode】找到所有数组中消失的数字 [E](数组)
LeetCode 448:给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。采用循环求解。原创 2023-02-21 10:52:39 · 112 阅读 · 0 评论 -
【LeetCode】找到字符串中所有字母异位词 [M](滑动窗口)
LeetCode 337:给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。异位词 指字母相同,但排列不同的字符串。采用滑动窗口求解。原创 2023-02-17 15:54:41 · 390 阅读 · 0 评论 -
【LeetCode】路径总和 III [M](前缀和)
LeetCode 437:给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。采用前缀和求解。原创 2023-02-16 23:23:33 · 90 阅读 · 0 评论 -
【LeetCode】分割等和子集 [M](动态规划)
LeetCode 416:给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。采用动态规划求解。原创 2023-02-16 13:15:02 · 110 阅读 · 0 评论 -
【LeetCode】根据身高重建队列 [M](贪心)
LeetCode 406:请你重新构造并返回输入数组people 所表示的队列。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。采用贪心求解。原创 2023-02-16 09:28:44 · 217 阅读 · 0 评论 -
【LeetCode】打家劫舍 III [M](递归)
LeetCode 337:给定二叉树的 root 。返回 在不触动警报的情况下 ,小偷能够盗取的最高金额 。采用递归求解。原创 2023-02-14 17:27:30 · 499 阅读 · 0 评论 -
【LeetCode】最大正方形 [M](动态规划)
LeetCode 221:在一个由 '0' 和 '1' 组成的二维矩阵内,找到只包含 '1' 的最大正方形,并返回其面积。采用动态规划求解。原创 2023-02-14 14:27:52 · 272 阅读 · 0 评论 -
【LeetCode】环形链表 II [M](链表)
LeetCode 142:给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。采用快慢指针求解。原创 2023-02-14 10:37:03 · 356 阅读 · 0 评论 -
【LeetCode】二叉树展开为链表 [M](Morris遍历)
LeetCode 114:给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。采用Morris遍历求解。原创 2023-02-13 21:01:46 · 71 阅读 · 0 评论 -
【LeetCode】不同的二叉搜索树 [M](卡特兰数)
LeetCode 96:给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。采用卡特兰数求解。原创 2023-02-13 14:42:11 · 432 阅读 · 0 评论 -
【LeetCode】组合总和 [M](回溯)
LeetCode 39:给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。采用回溯求解。原创 2023-02-13 10:19:29 · 339 阅读 · 1 评论 -
【LeetCode】公交路线 [H](宽度优先遍历)
LeetCode 815:现在从 source 车站出发(初始时不在公交车上),要前往 target 车站。 期间仅可乘坐公交车。求出 最少乘坐的公交车数量 。如果不可能到达终点车站,返回 -1 。采用宽度优先遍历求解。原创 2023-02-10 15:33:05 · 1134 阅读 · 0 评论 -
【LeetCode】石子游戏 IV [H](动态规划)
LeetCode 1510:给你正整数 n ,且已知两个人都采取最优策略。如果 Alice 会赢得比赛,那么返回 True ,否则返回 False 。采用动态规划求解。原创 2023-02-09 16:58:30 · 400 阅读 · 0 评论 -
【LeetCode】最长递增子序列的个数 [M](动态规划)
LeetCode 673:给定一个未排序的整数数组,找到最长递增子序列的个数。采用动态规划求解。原创 2023-02-06 21:57:12 · 397 阅读 · 0 评论 -
【LeetCode】最长同值路径 [M](二叉树)
LeetCode 687:给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值。 这条路径可以经过也可以不经过根节点。注意:两个节点之间的路径长度由它们之间的边数表示。注意: 给定的二叉树不超过10000个结点。 树的高度不超过1000。采用二叉树递归求解。原创 2023-02-03 09:49:32 · 290 阅读 · 0 评论 -
【LeetCode】四数相加 II [M](哈希表)
LeetCode 454:给定四个包含整数的数组列表 A , B , C , D,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 -2^28 到 2^28 - 1 之间,最终结果不会超过 2^31 - 1 。采用哈希表求解。原创 2023-02-02 15:18:53 · 331 阅读 · 0 评论 -
【LeetCode】至少有 K 个重复字符的最长子串 [M](滑动窗口)
LeetCode 395:给你一个字符串 s 和一个整数 k ,请你找出 s 中的最长子串,要求该子串中的每一字符出现次数都不少于 k 。返回这一子串的长度。采用滑动窗口求解。原创 2023-02-02 12:42:11 · 521 阅读 · 0 评论 -
【LeetCode】前 K 个高频元素 [M](堆)
LeetCode 347:给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。采用堆求解。原创 2023-01-31 17:18:51 · 162 阅读 · 0 评论 -
【LeetCode】打乱数组 [M](随机化)
LeetCode 384:给你一个整数数组 nums ,设计算法来打乱一个没有重复元素的数组。实现 Solution class: • Solution(int[] nums) 使用整数数组 nums 初始化对象 • int[] reset() 重设数组到它的初始状态并返回 •int[] shuffle() 返回数组随机打乱后的结果采用随机数求解。原创 2023-01-31 15:26:24 · 268 阅读 · 0 评论 -
【LeetCode】O(1) 时间插入、删除和获取随机元素 [M](哈希表)
LeetCode 324:设计一个支持在平均时间复杂度 O(1) 下,执行以下操作的数据结构。 • insert(val):当元素 val 不存在时,向集合中插入该项。 • remove(val):元素 val 存在时,从集合中移除该项。getRandom:随机返回现有集合中的一项。每个元素应该有相同的概率被返回。采用哈希表求解。原创 2023-01-31 14:25:31 · 476 阅读 · 0 评论 -
【LeetCode】两整数之和 [M](位运算)
LeetCode 371:给你两个整数 a 和 b ,不使用 运算符 + 和 - ,计算并返回两整数之和。采用位运算求解。原创 2023-01-31 10:41:22 · 139 阅读 · 0 评论 -
【LeetCode】递增的三元子序列 [M](动态规划)
LeetCode 334:给你一个整数数组nums ,判断这个数组中是否存在长度为 3 的递增子序列。如果存在这样的三元组下标 (i, j, k)且满足 i < j < k ,使得nums[i] < nums[j] < nums[k] ,返回 true ;否则,返回 false 。采用动态规划求解。原创 2023-01-30 13:49:00 · 343 阅读 · 0 评论 -
【LeetCode】奇偶链表 [M](链表)
LeetCode 328:给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。采用链表求解。原创 2023-01-30 10:59:50 · 201 阅读 · 0 评论 -
【LeetCode】摆动排序 II [M](快速排序)
LeetCode 324:给你一个整数数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序。你可以假设所有输入数组都可以得到满足题目要求的结果。采用快速排序求解。原创 2023-01-29 17:23:54 · 384 阅读 · 0 评论 -
【LeetCode】零钱兑换 [M](动态规划)
LeetCode 322:arr是面值数组,其中的值都是正数且没有重复。再给定一个正数aim。每个值都认为是一种面值,且认为张数是无限的。返回组成aim的最少货币数。采用动态规划求解。原创 2023-01-26 11:56:04 · 1297 阅读 · 0 评论 -
【LeetCode】计算右侧小于当前元素的个数 [H](归并排序)
LeetCode 315:给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。采用归并排序求解。原创 2023-01-25 22:11:41 · 618 阅读 · 0 评论 -
【LeetCode】二叉树的序列化与反序列化 [H](二叉树)
LeetCode 297:序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。采用二叉树序列化和反序列化求解。原创 2023-01-24 11:19:57 · 1407 阅读 · 0 评论 -
【LeetCode】数据流的中位数 [H](堆)
LeetCode 295:设计一个支持以下两种操作的数据结构: • void addNum(int num) - 从数据流中添加一个整数到数据结构中。 • double findMedian() - 返回目前所有元素的中位数。采用堆求解。原创 2023-01-23 21:57:52 · 591 阅读 · 1 评论 -
【LeetCode】生命游戏 [M](矩阵)
LeetCode 289:生命游戏,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。下一个状态是通过将上述规则同时应用于当前状态下的每个细胞所形成的,其中细胞的出生和死亡是同时发生的。给你 m x n 网格面板 board 的当前状态,返回下一个状态。采用位运算求解。原创 2023-01-19 17:05:27 · 2217 阅读 · 0 评论 -
【LeetCode】寻找重复数 [M](数学)
LeetCode 287:给定一个包含 n + 1 个整数的数组 nums ,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 ,找出 这个重复的数 。采用快慢指针求解。原创 2023-01-13 21:15:46 · 577 阅读 · 0 评论 -
【LeetCode】完全平方数 [M](数学)
LeetCode 279:给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。采用数学求解。原创 2023-01-13 15:42:55 · 379 阅读 · 0 评论 -
【LeetCode】除自身以外数组的乘积 [M](数组)
LeetCode 238:给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。采用后缀乘积求解。原创 2023-01-12 16:35:41 · 464 阅读 · 0 评论