leetCode
文章平均质量分 75
leetCode
呵呵哒( ̄▽ ̄)"
喜欢分享学习笔记,并不一定是正确的,阶段性的学习成果做一下记录,欢迎一起交流讨论,也希望有错误的地方可以向我提出,我会虚心接受并纠正
展开
-
leetCode 17.电话号码的字母组合 + 回溯算法 + 图解 + 笔记
LeetCode:17.电话号码的字母组合_哔哩哔哩_bilibili。的字符串,返回所有它能表示的字母组合。代码随想录 (programmercarl.com)解决思路:1.创建字符集(使数字和字母集做映射)注意 1 不对应任何字母。给出数字到字母的映射如下(与。循环的问题,举个栗子:输入。1).确定回溯函数参数。3).确定单层遍历逻辑。原创 2023-11-28 16:43:54 · 1221 阅读 · 0 评论 -
leetCode 216.组合总和 III + 回溯算法 + 剪枝 + 图解 + 笔记
和组合问题有啥区别?| LeetCode:216.组合总和III_哔哩哔哩_bilibili。求解组合问题:元素不同的顺序是一样的组合,不能取重复的元素。该列表不能包含相同的组合两次,组合可以以任何顺序返回。代码随想录 (programmercarl.com)所有可能的有效组合的列表。回溯算法的实现过程,包括。【思路分析】可以通过。原创 2023-11-28 14:02:47 · 1351 阅读 · 0 评论 -
leetCode 77.组合 + 回溯算法 (bactracking) + 剪枝 + 图解 + 笔记
【代码】leetCode 77.组合 + 回溯。原创 2023-11-27 21:27:07 · 622 阅读 · 0 评论 -
leetCode 1080.根到叶路径上的不足节点 + 递归 + 图解
链接:https://leetcode.cn/problems/insufficient-nodes-in-root-to-leaf-paths/description/1080. 根到叶路径上的不足节点 - 力扣(LeetCode),并返回最终二叉树的根节点。路径上值的总和全都小于给定的 limit。,表示从根到当前节点的路径和。,就是没有子节点的节点。,请你同时删除树中所有。此段文字来自以下作者。原创 2023-11-25 22:23:51 · 967 阅读 · 0 评论 -
leetCode 841. 钥匙和房间 图遍历 深度优先遍历+广度优先遍历 + 图解
号房间外的其余所有房间都被锁住。你的目标是进入所有的房间。然而,你不能在没有获得钥匙的时候进入锁住的房间。当你进入一个房间,你可能会在里面找到一套不同的钥匙,每把钥匙上都有对应的房间号,即表示钥匙可以打开的房间。你可以拿上所有钥匙去解锁其他房间。由于我们能够进入每个房间,我们返回 true。号房间可以获得的钥匙集合。我们从 0 号房间开始,拿到钥匙 1。之后我们去 1 号房间,拿到钥匙 2。然后我们去 2 号房间,拿到钥匙 3。最后我们去了 3 号房间。我们不能进入 2 号房间。原创 2023-11-27 10:43:47 · 729 阅读 · 0 评论 -
LCR 047. 二叉树剪枝 和 leetCode 1110. 删点成林 + 递归 + 图解
中出现,我们就把该节点从树上删去,最后得到一个森林(一些不相交的树构成的集合)。返回森林中的每棵树。你可以按任意顺序组织答案。1110. 删点成林 - 力扣(LeetCode)1110. 删点成林 - 力扣(LeetCode)1110. 删点成林 - 力扣(LeetCode)1110. 删点成林 - 力扣(LeetCode)只有红色节点满足条件“所有不包含 1 的子树”。,树上每个节点都有一个不同的值。请剪除该二叉树中所有节点的值为。解法一:“递归”的思路可以分为。,树的每个节点的值要么是。原创 2023-11-26 20:36:20 · 759 阅读 · 0 评论 -
leetCode 1026. 节点与其祖先之间的最大差值 + 递归
(如果 A 的任何子节点之一为 B,或者 A 的任何子节点是 B 的祖先,那么我们认为 A 是 B 的祖先)在所有可能的差值中,最大值 7 由 |8 - 1| = 7 得出。对于一条从根出发向下的路径,实际上算的是这条路径上。故,无需记录递归路径中的全部节点值,,在递归到终点时才去更新答案。,那么从根到叶子的路径上。无需每个节点都去更新答案。是从根到叶子的路径上的。原创 2023-11-25 18:54:29 · 533 阅读 · 0 评论 -
leetCode 226.翻转二叉树 递归 + 非递归 + 前中后序 + 层序遍历 【深度和广度优先遍历】
leetCode 226.翻转二叉树-CSDN博客。原创 2023-11-25 13:49:05 · 599 阅读 · 0 评论 -
leetCode 226.翻转二叉树
也可以简洁写成:root.left,root.right = right,left。也可以简洁写成:swap(root->left,root->right);,翻转这棵二叉树,并返回其根节点。给你一棵二叉树的根节点。原创 2023-11-25 13:27:04 · 472 阅读 · 0 评论 -
leetCode 100. 相同的树 和 leetCode 101. 对称二叉树 和 110. 平衡二叉树 和 199. 二叉树的右视图
leetCode 100. 相同的树 和 leetCode 101. 对称二叉树 和 110. 平衡二叉树 和 199. 二叉树的右视图原创 2023-11-24 21:31:53 · 401 阅读 · 0 评论 -
树形 DP:树的直径
124. 二叉树中的最大路径和 https://leetcode.cn/problems/binary-tree-maximum-path-sum/solution/shi-pin-che-di-zhang-wo-zhi-jing-dpcong-n9s91/543. 二叉树的直径 https://leetcode.cn/problems/diameter-of-binary-tree/solution/shi-pin-che-di-zhang-wo-zhi-jing-dpcong-taqma/原创 2023-11-24 19:48:58 · 949 阅读 · 0 评论 -
leetCode 2925. 在树上执行操作以后得到的最大分数 + 正则难反 + 树形 DP
根节点的值是非 0 的。你的得分之和为 values[1] + values[2] + values[3] + values[4] + values[5] = 11。思路分析:题目中“如果从根节点出发,到任意叶子节点经过的路径上的节点值之和都不等于 0”。所在在执行操作时,每条从根节点到叶子节点的路径上,都存在一个节点不去操作(多条路径可能共用一个不操作的节点)如果从根节点出发,到任意叶子节点经过的路径上的节点值之和都不等于 0 ,那么我们称这棵树是。- 从 0 到 5 的节点值之和为 3。原创 2023-11-23 17:19:48 · 270 阅读 · 0 评论 -
leetCode 面试题 02.04. 分割链表
请你对链表进行分隔,使得所有。每个分区中各节点的初始相对位置。给你一个链表的头节点。原创 2023-11-15 22:10:05 · 200 阅读 · 0 评论 -
leetCode 21.合并两个有序链表
新链表是通过拼接给定的两个链表的所有节点组成的。将两个升序链表合并为一个新的。原创 2023-11-15 20:47:07 · 223 阅读 · 0 评论 -
leetCode 25.K 个一组翻转链表
的整数倍,那么请将最后剩余的节点保持原有顺序。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。个节点一组进行翻转,请你返回修改后的链表。是一个正整数,它的值。原创 2023-11-13 23:10:36 · 691 阅读 · 0 评论 -
leetCode 92.反转链表 II + 图解
leetCode 206.反转链表 图解原创 2023-11-13 21:20:27 · 382 阅读 · 0 评论 -
leetCode 493 翻转对 归并分治 + 图解
归并排序 merge Sort + 图解 + 递归 / 非递归-CSDN博客。归并分治 归并排序的应用 + 图解 + 笔记-CSDN博客。算法讲解022【必备】归并分治_哔哩哔哩_bilibili。归并排序 图解 递归 + 非递归 + 笔记-CSDN博客。你需要返回给定数组中的重要翻转对的数量。原创 2023-11-11 17:32:51 · 179 阅读 · 0 评论 -
leetCode 206.反转链表 图解
请你反转链表,并返回反转后的链表。原创 2023-11-09 18:57:34 · 175 阅读 · 0 评论 -
遍历二叉树 先序+后序+中序递归 用递归序来了解递归基本样子
原创 2023-11-08 14:16:20 · 193 阅读 · 0 评论 -
C++ 图解二叉树非递归后序 + 实战力扣题
【代码】C++ 图解二叉树非递归后序 + 实战力扣题。原创 2023-11-08 14:09:13 · 268 阅读 · 0 评论 -
C++ 图解二叉树非递归中序 + 实战力扣题
两分钟学会非递归中序遍历_哔哩哔哩_bilibili。这个例子进行总结,找出打印。打印的是一棵二叉树的。指向它的左边界的节点是。原创 2023-11-08 13:39:24 · 137 阅读 · 0 评论 -
C++ 二叉树非递归先/后序 + 实战力扣题
中 左 右 ->(中 右 左)遍历顺序: 左 右 中。144 二叉树非递归先序。145.二叉树的后序遍历。原创 2023-11-08 14:09:29 · 128 阅读 · 0 评论 -
leetCode 322.零钱兑换 完全背包 + 动态规划 + 记忆化搜索 + 递推 + 空间优化 + 画递归树
在上面的递归树中,可以看到有许多子问题被多次计算。例如,F(1)被计算了13次。为了避免重复的计算,可以将每个子问题的答案存在一个数组中进行记忆化,如果下次还要计算这个问题的值直接从数组中取出返回即可,这样能保证每个子问题最多只被计算一次。0-1背包 完全背包 + 至多/恰好/至少 + 空间优化 + 常见变形题(实战力扣题)-CSDN博客。LeetCode 322.零钱兑换 完全背包 + 动态规划_呵呵哒( ̄▽ ̄)"的博客-CSDN博客。最优解可以从其子问题的最优解构造出来。,这是解决动态规划问题的关键。原创 2023-11-04 16:26:34 · 222 阅读 · 0 评论 -
leetCode 416.分割等和子集 + 01背包 + 动态规划 + 记忆化搜索 + 递推 + 空间优化
LeetCode 416.分割等和子集(动态规划【0-1背包问题】采用一维数组dp:滚动数组)_呵呵哒( ̄▽ ̄)"的博客-CSDN博客。利用memset 赋值无穷大和无穷小_如何使用memset函数初始化数组的值为无穷小_Prudento的博客-CSDN博客。0-1背包 完全背包 + 至多/恰好/至少 + 空间优化 + 常见变形题(实战力扣题)-CSDN博客。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。,这是解决动态规划问题的关键。:根据递归的边界来初始化。(3)1:1 翻译成。原创 2023-11-04 22:40:40 · 244 阅读 · 0 评论 -
LeetCode 509 斐波那契数(动态规划)+ 入门问题
leetCode 746. 使用最小花费爬楼梯 + 记忆化搜索 + 递推 + 动态规划 + 空间优化-CSDN博客。LeetCode 70.爬楼梯 + 记忆化搜索 + 递推 + 动态规划 + 空间优化-CSDN博客。动态递推公式 : dp[i] = dp[i-1] + dp[i-2];开始,后面的每一项数字都是前面两项数字的和。代码随想录 (programmercarl.com)1.确定dp数组以及下标的含义。表示)形成的序列称为。3.dp数组如何初始化。,那么遍历的顺序一定是。5.举例推导dp数组。原创 2023-09-26 22:03:07 · 154 阅读 · 0 评论 -
leetCode 136.只出现一次的数字 + 位运算 + 模2加法
你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。leetCode 260.只出现一次的数字 ||| + 位运算-CSDN博客。找出那个只出现了一次的元素。原创 2023-10-29 21:59:24 · 200 阅读 · 0 评论 -
LeetCode 494.目标和 (动态规划 + 性能优化)二维数组 压缩成 一维数组
j=1,j>=nums[0],那么dp[1][1] = dp[0][1] + dp[0][1-nums[0]] = 0 + dp[0][0] = 0 + 1 = 1。j=2,j>=nums[0],那么dp[1][2] = dp[0][2] + dp[0][2-nums[0]] = 0 + dp[0][1] = 0 + 0 = 0。j=3,j>=nums[0],那么dp[1][3] = dp[0][3] + dp[0][3-nums[0]] = 0 + dp[0][2] = 0 + 0 = 0。原创 2023-09-24 23:05:03 · 774 阅读 · 3 评论 -
leetCode 494. 目标和 + 动态规划 + 记忆化搜索 + 递推 + 空间优化
LeetCode 494.目标和 (动态规划 + 性能优化)二维数组 压缩成 一维数组_呵呵哒( ̄▽ ̄)"的博客-CSDN博客。返回可以通过上述方法构造的、运算结果等于 target。,然后串联起所有整数,可以构造一个。向数组中的每个整数前添加 '+'和一个整数 target。原创 2023-11-04 12:39:09 · 200 阅读 · 0 评论 -
0-1背包 完全背包 + 至多/恰好/至少 + 空间优化 + 常见变形题(实战力扣题)
LCR 166.珠宝的最高价值 + 动态规划 + 记忆化搜索 + 递推 + 空间优化-CSDN博客。返回可以通过上述方法构造的、运算结果等于 target。种方案,刚好这种写法可以从 1 开始,算出来。(这句话我听得迷迷糊糊的,有小伙伴懂得指导我一下。,表示不同面额的硬币;计算并返回可以凑成总金额所需的。如果没有任何一种硬币组合能组成总金额,返回。,然后串联起所有整数,可以构造一个。向数组中的每个整数前添加 '+'你可以认为每种硬币的数量是。(2)1:1 翻译成递推。(2)1:1 翻译成递推。原创 2023-11-03 21:23:38 · 374 阅读 · 0 评论 -
LCR 166.珠宝的最高价值 + 动态规划 + 记忆化搜索 + 递推 + 空间优化
除非这个架子上没有任何珠宝,比如 frame = [[0]]LCR 166. 珠宝的最高价值 - 力扣(LeetCode)解决方案:在 f 数组的上边和左边各加一排,的珠宝架,其中 frame[i][j]为该位置珠宝的价值。(2)递归搜索 + 保存计算结果 =由于每个状态只会计算一次,状态个数为。现有一个记作二维矩阵 frame。注意:珠宝的价值都是。,单个状态的计算时间为。原创 2023-11-03 19:35:52 · 279 阅读 · 0 评论 -
leetCode 213. 打家劫舍 II + 动态规划 + 从记忆化搜索到递推 + 空间优化
leetCode 213. 打家劫舍 II 动态规划 房间连成环怎么偷呢?_呵呵哒( ̄▽ ̄)"的博客-CSDN博客。_呵呵哒( ̄▽ ̄)"的博客-CSDN博客。leetCode 198.打家劫舍 动态规划 + 优化空间复杂度_呵呵哒( ̄▽ ̄)"的博客-CSDN博客。你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,leetCode 198.打家劫舍 动态规划入门:从记忆化搜索到递推-CSDN博客。原创 2023-11-02 23:00:34 · 290 阅读 · 0 评论 -
leetCode 746. 使用最小花费爬楼梯 + 记忆化搜索 + 递推 + 动态规划 + 空间优化
LeetCode 70.爬楼梯 + 记忆化搜索 + 递推 + 动态规划 + 空间优化-CSDN博客。leetCode 198.打家劫舍 动态规划入门:从记忆化搜索到递推-CSDN博客。leetCode 746. 使用最小花费爬楼梯 动态规划-CSDN博客。leetCode 746. 使用最小花费爬楼梯 动态规划-CSDN博客。(2)递归搜索 + 保存计算结果 = 记忆化搜索。(3)1:1 翻译成递推。(1) 递归(超时)原创 2023-11-02 22:56:53 · 165 阅读 · 0 评论 -
LeetCode 70.爬楼梯 + 记忆化搜索 + 递推 + 动态规划 + 空间优化
leetCode 70.爬楼梯 动态规划_呵呵哒( ̄▽ ̄)"的博客-CSDN博客。(2)递归搜索 + 保存计算结果 = 记忆化搜索。(3)1:1 翻译成递推。(1) 递归(超时)原创 2023-11-02 22:07:02 · 162 阅读 · 0 评论 -
leetCode 2915. 和为目标值的最长子序列的长度 + 动态规划 +01背包 + 空间优化 + 记忆化搜索 + 递推
指的是从原数组中删除一些或者不删除任何元素后,剩余元素保持原来的顺序构成的数组。leetCode 198.打家劫舍 动态规划入门:从记忆化搜索到递推-CSDN博客。2915. 和为目标值的最长子序列的长度 - 力扣(LeetCode)这样就可以先将子问题解决掉,然后反过来解决较大的子问题。动态规划入门:从记忆化搜索到递推_哔哩哔哩_bilibili。来再次找到子子问题与子问题的联系。,确定子问题与原问题的联系。子问题又可以通过同样的。116双周赛T3复盘_哔哩哔哩_bilibili。原创 2023-11-02 18:25:46 · 372 阅读 · 0 评论 -
leetCode 198.打家劫舍 动态规划入门:从记忆化搜索到递推
选 或 不选选哪个对于这个题,先把它看做是一道回溯题要把一个大问题变成一个规模更小的子问题,从第一个房子或者最小一个房子开始思考,是最容易的,因为它们受到的约束是最小的。比如考虑最后一个房子「选」还是「不选」,如果「不选」,那么问题就变成个房子的问题。如果选,问题就变成个房子的问题,不断这样去思考,就可以得到一棵搜索树了。(二)回溯由于在选的情况下,相邻的房子是不能选的,所以这里直接递归到个房子,把刚才的思考过程再抽象一下:当我们枚举到第个房子「选」或「不选」的时候,就确定了递归参数中的。原创 2023-11-02 14:07:12 · 393 阅读 · 0 评论 -
leetCode 137. 只出现一次的数字 II(拓展篇) + 模5加法器 + 真值表(数字电路)
leetCode 137. 只出现一次的数字 II + 位运算 + 模3加法器 + 真值表(数字电路) + 有限状态机-CSDN博客。我的解法,不知道是否正确,原创 2023-10-31 20:58:31 · 267 阅读 · 0 评论 -
完全背包 动态规划 + 一维dp数组
也就是说,完全背包中,两个for循环的先后循序,都不影响计算dp[j]所需要的值(这个值就是下标j之前所对应的dp[j])有,(一维dp)0-1背包问题中的背包容量是从大到小去遍历的,完全背包问题中的背包容量是从小到大去遍历的。🤔:请问在完全背包中,对于一维dp数组来说,两个for循环嵌套顺序不同,结果还一样吗?总结:对于纯完全背包问题,其for循环的先后循环是可以颠倒的!(1)遍历物品在外层循环,遍历背包容量在内层循环。(2)遍历背包容量在外层循环,遍历物品在内层循环。(1)0-1背包的核心代码。原创 2023-09-26 21:27:20 · 133 阅读 · 0 评论 -
leetCode 137. 只出现一次的数字 II + 位运算 + 模3加法器 + 真值表(数字电路) + 有限状态机
统计数组中每个元素的出现次数,对于哈希映射中的每个键值对,键表示一个元素,值表示其出现的次数。在统计完成后,遍历哈希映射即可找出只出现一次的元素。这三个状态,但是一个比特位只能表示两个状态,怎么办呢?此时我们可以扩展一个比特,即用两个比特来保存位计数器的三个状态。一样,同样考虑一个比特位的情况,这里需要对这个比特进行计数到 3 时归 0,也就是说需要一个。但是没有现成的加法器,那么需要自己构造一个能位运算的。当前遍历过的所有整数的第 i 位之和除以3的余数。存储当前遍历过的所有整数,当遍历到一个新的整数。原创 2023-10-31 15:45:42 · 877 阅读 · 0 评论 -
leetCode 260.只出现一次的数字 ||| + 位运算
(因为你找到取反后的结果的 0 出现的最低位置,那么就可以通过运算变换求出 s 出现 1 的最低位置,而这恰好有求补码的过程,那么我们也可以进一步将求补码的过程简洁写成 -s )。,从左到右,直到找到一个0后面都是连续1的子序列的位置,将其设置为1,而后面连续的1的子序列全置为0。然后再让 s & (~s+1) 就可以获得lowbit。260. 只出现一次的数字 III - 力扣(LeetCode),需要找到异或和中的某个值为 1 的比特位,如何解决?【一个有意思的点】根据补码的定义,就是。原创 2023-10-29 21:22:31 · 392 阅读 · 0 评论 -
leetCode 169. 多数元素 + 摩尔投票法
leetCode 229. 多数元素 II + k值摩尔投票法 + 进阶 + 优化空间-CSDN博客。LCR 158. 库存管理 II 哈希 / 摩尔投票法-CSDN博客。你可以假设数组是非空的,并且给定的数组总是存在多数元素。,返回其中的多数元素。多数元素是指在数组中出现次数。原创 2023-10-28 20:55:30 · 221 阅读 · 0 评论