- 博客(32)
- 收藏
- 关注
原创 图论part4|827. 最大人工岛、127. 单词接龙、463. 岛屿的周长
示例 1:输入:beginWord = "hit", endWord = "cog", wordList = ["hot","dot","dog","lot","log","cog"]输出:5解释:一个最短转换序列是 "hit" -> "hot" -> "dot" -> "dog" -> "cog", 返回它的长度 5。示例 1:输入: grid = [[1, 0], [0, 1]]输出: 3解释: 将一格0变成1,最终连通两个小岛得到面积为 3 的岛屿。463. 岛屿的周长 - 力扣(LeetCode)
2025-03-15 00:10:39
1073
原创 图论part3|101.孤岛的总面积、沉没孤岛、417. 太平洋大西洋水流问题
是否有挨着边的岛屿所以可以先遍历四条边挨着的岛屿,把他们标记为非孤岛。
2025-03-13 23:57:36
980
原创 动态规划part09|188.买卖股票的最佳时机IV 、309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费、股票问题总结
【代码】动态规划part09|188.买卖股票的最佳时机IV 、309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费、股票问题总结。
2025-02-18 15:40:38
366
原创 动态规划part8|121. 买卖股票的最佳时机、122.买卖股票的最佳时机II、123.买卖股票的最佳时机III
由于第一个状态的利润显然为 0,因此我们可以不用将其记录。对于剩下的四个状态,我们分别将它们的最大利润记为 buy1,sell1,buy2,sell2。进行了一次买操作和一次卖操作,即完成了一笔交易;在完成了一笔交易的前提下,进行了第二次买操作;只进行过一次买操作;完成了全部两笔交易。
2025-02-17 13:08:48
332
原创 动态规划part7|198. 打家劫舍、213.打家劫舍II、337.打家劫舍III
【代码】动态规划part7|198. 打家劫舍、213.打家劫舍II、337.打家劫舍III。
2025-02-16 15:09:49
252
原创 动态规划part5|完全背包、518. 零钱兑换 II 、377. 组合总和
【代码】动态规划part5|完全背包、518. 零钱兑换 II 、377. 组合总和。
2025-02-15 17:43:10
290
原创 动态规划06|322. 零钱兑换、279.完全平方数、139.单词拆分、多重背包
【代码】动态规划06|322. 零钱兑换、279.完全平方数、139.单词拆分、多重背包。
2025-02-15 14:06:16
286
原创 动态规划part4|1049. 最后一块石头的重量 II、494. 目标和、474. 一和零
两个石头相撞,结果要么为x-y,要么为y-x无论你怎么两两相碰,永远有的数字前为正号,有的为负号,因此你总可以把最终式化为一堆和减去另外一堆数字和因此我们要找的是这个集合的两个子集之和的最小差要想子集之和差最小,则两者应该尽量接近或者相等这个时候我们就可以把sum/2作为背包容量,使用01背包来解题了。
2025-02-12 16:33:27
283
原创 动态规划part1|理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
【代码】动态规划part1|理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯。
2025-02-09 16:51:25
247
原创 动态规划part3|背包问题、 416. 分割等和子集
第一次接触背包问题,代码随想录介绍的比较详细,需要注意怎么更新dp的数字。注意需要反向对列进行遍历,避免重复加同一个物品。01背包问题的一个应用,思路不难想。416. 分割等和子集。
2025-02-09 16:23:29
777
原创 贪心算法part4-重叠区间问题|452. 用最少数量的箭引爆气球、435. 无重叠区间、763.划分字母区间
【代码】贪心算法part4-重叠区间问题|452. 用最少数量的箭引爆气球、435. 无重叠区间、763.划分字母区间。
2025-02-05 16:29:08
336
原创 回溯算法part03|93.复原IP地址、78.子集、90.子集II
【代码】回溯算法part03|93.复原IP地址、78.子集、90.子集II。
2025-01-25 14:00:15
240
原创 回溯part02|39. 组合总和、40.组合总和II、131.分割回文串
【代码】回溯part02|39. 组合总和、40.组合总和II、131.分割回文串。
2025-01-23 15:41:47
169
原创 回溯算法part1| 77. 组合 、216.组合总和III 、 17.电话号码的字母组合
/ -- 常用方法: .length() .append() .toString() .deleteCharAt()
2025-01-22 16:27:35
276
原创 二叉树part08| 669. 修剪二叉搜索树、 108.将有序数组转换为二叉搜索树 、 538.把二叉搜索树转换为累加树
【代码】二叉树part08| 669. 修剪二叉搜索树、 108.将有序数组转换为二叉搜索树 、 538.把二叉搜索树转换为累加树。
2025-01-21 15:50:14
898
原创 二叉树Part7| 235. 二叉搜索树的最近公共祖先、701. 二叉搜索树中的插入操作、450.删除二叉搜索树中的节点
235. 二叉搜索树的最近公共祖先235. 二叉搜索树的最近公共祖先思路: 和part6的最后一题类似,多了二叉搜索树的性质,判断的时候条件改变一下就可以了代码。
2025-01-01 20:13:34
904
原创 二叉树part6|530.二叉搜索树的最小绝对差、501.二叉搜索树的众数、236.二叉树的最近公共祖先
【代码】二叉树part6|530.二叉搜索树的最小绝对差、501.二叉搜索树的众数、236.二叉树的最近公共祖先。
2025-01-01 15:14:35
388
原创 二叉树part4|513.找树左下角的值、112.路径总和、106.从中序和后序遍历构造二叉树、105.从前序和中序遍历序列构造二叉树
【代码】二叉树part4|513.找树左下角的值、112.路径总和、106.从中序和后序遍历构造二叉树、105.从前序和中序遍历序列构造二叉树。
2024-12-26 18:53:11
260
原创 第六章 二叉树 part05|654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树
【代码】第六章 二叉树 part05|654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树。
2024-12-26 18:52:29
301
原创 第六章 二叉树part03|110.平衡二叉树 257.二叉树的所有路径 404.左子叶子和 222.完全二叉树的节点个数
【代码】第六章 二叉树part03|110.平衡二叉树 257.二叉树的所有路径 404.左子叶子和 222.完全二叉树的节点个数。
2024-12-21 14:46:01
603
原创 第六章 二叉树part 02 226. 翻转二叉树、101对称二叉树、104二叉树的最大深度、111二叉树的最小深度
【代码】第六章 二叉树part 02 226. 翻转二叉树、101对称二叉树、104二叉树的最大深度、111二叉树的最小深度。
2024-12-20 15:20:05
277
原创 代码随想录 D7 | 454. 四数相加 383.赎金信 15.三数之和 18. 四数之和
【代码】代码随想录 D7 | 454. 四数相加 383.赎金信 15.三数之和 18. 四数之和。
2024-05-16 20:48:52
1087
原创 代码随想录Day 5 哈希表 242.有效的字母异味词 349.两个数组的交集 202.快乐数 1.两数之和
总的来说难度不大,但是由于我对于map和set类型不熟悉还是花了很多时间,需要认真复习这一块的知识。
2024-05-16 17:30:40
1006
原创 代码随想录 Day 4 | 链表02及总结
总的来说,链表的部分并不难,但是需要注意一下的方面是否需要对头节点进行单独讨论(可以用虚拟头节点规避这个问题)是否有可能对于空结点进行操作避免单项节点出现环结构,最好通过画图具体展现过程链表只能从前向后遍历,后一个结点无法获取前一个结点的信息,因此通常遍历时需要获取的是目标值的前一个结点,而不是目标值,需要做好判断与数组相同,注意双指针法和快慢指针法在其中的应用。
2024-05-10 23:37:05
511
原创 代码随想录 Day 3 | 链表 203. 移除元素 707.设计链表 206.反转链表
/ 数据信息int val;// 下一节点信息// 节点的构造函数(无参)// 节点的构造函数(有一个参数)// 节点的构造函数(有两个参数)
2024-05-10 04:46:40
749
原创 代码随想录 Day 1| 704. 二分查找、27. 移除元素
34 在排序数组中查找元素的第一个和最后一个位置问题描述:找出一个非递减序列目标值的开始位置和结束位置这里我用了先二分法找到target,然后分别向前和向后搜索目标值的方法,通过了测试,但是最糟糕的时候复杂度有n的平方,并不是很有效率。思路:分别计算左右边界,然后把他们合并起来。分为以下两种情况讨论:一般情况:右>=左若找不到该值:右<左代码// 寻找右边界这里注意java不能返回[a,b]这样的数组形式,必须new一个new int[] {a,b}
2024-05-09 00:16:27
1100
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅