![](https://img-blog.csdnimg.cn/206b5ff9438e47bdb7ed1fc4b4ae6aa8.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
文章平均质量分 63
算法题解和学习笔记
小七mod
脚踏实地,仰望星空
展开
-
【LeetCode】字符串转换整数 (atoi) [M](模拟)
LeetCode 8:请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数。采用模拟求解。原创 2023-05-25 16:13:15 · 809 阅读 · 0 评论 -
【LeetCode】划分字母区间 [M](贪心)
LeetCode 763:给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。返回一个表示每个字符串片段的长度的列表。采用贪心求解。原创 2023-02-24 09:40:44 · 187 阅读 · 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】路径总和 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】至少有 K 个重复字符的最长子串 [M](滑动窗口)
LeetCode 395:给你一个字符串 s 和一个整数 k ,请你找出 s 中的最长子串,要求该子串中的每一字符出现次数都不少于 k 。返回这一子串的长度。采用滑动窗口求解。原创 2023-02-02 12:42:11 · 521 阅读 · 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】摆动排序 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】生命游戏 [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 236:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。采用中二叉树递归求解。原创 2023-01-12 14:51:19 · 280 阅读 · 0 评论 -
【LeetCode】数组中的第K个最大元素 [M](快速排序)
LeetCode 215:给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。采用改进后的快排求解。原创 2023-01-10 21:31:07 · 567 阅读 · 0 评论 -
【LeetCode】打家劫舍 II [M](动态规划)
LeetCode 213:给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,今晚能够偷窃到的最高金额。采用动态规划求解。原创 2023-01-10 14:57:02 · 470 阅读 · 0 评论 -
【LeetCode】课程表 II [M](拓扑排序)
LeetCode 210:现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。采用拓扑排序求解。原创 2023-01-10 13:10:23 · 459 阅读 · 0 评论 -
【LeetCode】 课程表 [M](拓扑排序)
LeetCode 207:你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。例如,先修课程对 [0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1 。请你判断是否可能完成所有课程的学习?如果可以,返回 true ;采用拓扑排序求解。原创 2023-01-09 16:47:30 · 460 阅读 · 0 评论 -
【LeetCode】计数质数 [M](素数筛选)
LeetCode 204:给定整数 n ,返回 所有小于非负整数 n 的质数的数量 。采用埃氏素数筛选法求解。原创 2023-01-09 10:59:06 · 393 阅读 · 0 评论 -
【LeetCode】轮转数组 [M](数组)
LeetCode 189:给你一个数组,将数组中的元素向右轮转k个位置,其中k是非负数。采用数组逆序求解。原创 2023-01-06 15:05:46 · 625 阅读 · 0 评论 -
【LeetCode】最大数 [M](贪心)
LeetCode 179:给定一组非负整数nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。采用贪心求解。原创 2023-01-06 14:35:35 · 234 阅读 · 0 评论 -
【LeetCode】分数到小数 [M](模拟)
LeetCode 166:给定两个整数,分别表示分数的分子numerator 和分母 denominator,以 字符串形式返回小数 。如果小数部分为循环小数,则将循环的部分括在括号内。如果存在多个答案,只需返回 任意一个 。采用模拟求解。原创 2023-01-06 12:23:56 · 519 阅读 · 0 评论 -
【LeetCode】寻找峰值 [M](二分)
LeetCode 162:给你一个整数数组nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。采用二分法求解。原创 2023-01-05 15:11:23 · 464 阅读 · 0 评论 -
【LeetCode】乘积最大子数组 [M](动态规划)
LeetCode 152:给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。采用动态规划求解。原创 2023-01-05 10:29:31 · 354 阅读 · 0 评论