- 博客(47)
- 收藏
- 关注
原创 代码随想录算法训练营day50 | 深度优先搜索理论基础、98. 所有可达路径、广度优先搜索理论基础
碎碎念:参考:代码随想录深度优先搜索dfs: 是从一个节点开始,尽可能深入到每个分支的尽头,然后回溯到上一个节点,再探索其他未探索的分支。通常用递归或者栈实现。广度优先搜索bfs: 从一个节点开始,先探索所有邻接节点,然后再探索这些邻接节点的邻接节点,逐层展开。通常使用队列来实现。深搜三部曲确认递归函数确认终止条件处理目前搜索节点出发的路径98. 所有可达路径题目链接98. 所有可达路径本题应该用深度优先搜索。深搜三部曲:反思注意体会ACM模式对输入输出的控制。广搜适合解决两个
2024-08-21 21:16:36
316
原创 代码随想录算法训练营day49 | 42. 接雨水、84.柱状图中最大的矩形
碎碎念:参考:代码随想录42. 接雨水如图可以按照列来计算,这样宽度一定是1,只需要计算每一列的雨水的高度接口。而每一列的雨水高度取决于该列左侧最高的主子和右侧最高柱子中最矮的那个柱子的高度。如图求列4的雨水高度:左侧最高的柱子为3,高度为2(rHeight)右侧最高的柱子为7,高度为3(lHeight)列4的主子高度为1(height)那么列4的雨水高度为:min(lHeight, rHeight) - height那么遍历所有的列,求出每一列雨水的体积,求和就可以得到雨水的体积了。暴
2024-08-20 16:17:29
806
原创 代码随想录算法训练营day48 | 739. 每日温度、496.下一个更大元素 I、503.下一个更大元素II
碎碎念:参考:代码随想录739. 每日温度暴力解法: 双指针,一个指针遍历依次遍历数组元素,另一个指针向后寻找第一个比当前元素大的元素,找到后计算下标的差。单调栈任务: 找到当前元素右边第一个比当前元素大的元素。单调栈: 栈里的元素保证递增或者递减。本题应该在单调栈里存下标而不是元素。本题应该让单调栈递增。单调栈的作用: 存放遍历过的元素,和当前遍历的元素做对比。当前遍历元素>栈顶元素的时候:记录结果,把栈顶元素弹出,当前遍历元素入栈当前遍历元素==栈顶元素的时候:当前遍历元素入栈当前遍历元
2024-08-19 16:30:37
508
原创 代码随想录算法训练营day46 | 647. 回文子串、516.最长回文子序列
碎碎念:参考:代码随想录647. 回文子串动态规划五部曲:用一个result记录回文串个数,最后返回即可。反思注意本题的遍历顺序。516.最长回文子序列上一题强调元素连续,本题求的是子序列,不要求连续。动态规划五部曲:反思注意积累这种题的dp数组含义。
2024-08-18 21:06:36
511
原创 代码随想录算法训练营day43 | 300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组
碎碎念:参考:代码随想录300.最长递增子序列动态规划五部曲:反思注意对len(nums) <= 1条件的处理。674. 最长连续递增序列本题和上一题最大的区别在于“连续”。体现在代码里就是递推公式前判断一下当前元素和上一个元素的大小关系,上一题的这部分要判断当前元素和之前所有元素的大小关系。动态规划五部曲:反思718. 最长重复子数组题目链接718. 最长重复子数组子数组就是连续的子序列。动态规划五部曲:反思本题也可以做状态压缩。dp[i][j],以i-1为结尾的nums1和
2024-08-16 22:03:13
470
原创 代码随想录算法训练营day42 | 188.买卖股票的最佳时机IV、309.最佳买卖股票时机含冷冻期 、714.买卖股票的最佳时机含手续费、股票系列总结
碎碎念:参考:代码随想录188.买卖股票的最佳时机IV本题是至多对股票买卖k次,需要和上一题123.买卖股票的最佳时机III对比着看,把至多2次推广到k次即可。这是123.买卖股票的最佳时机III的推导过程:动态规划五部曲:确定dp数组以及下标的含义:dp[i][0],不操作;dp[i][1],第一次持有;dp[i][2]第i天不持有;dp[i][3]第二次持有;dp[i][4]第二次不持有。最后返回dp[len-1][4]确定递推公式:dp数组的初始化:dp[0][0]=0, dp[0][1]=-p
2024-08-13 23:16:14
735
原创 代码随想录算法训练营day41 | 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II 、123.买卖股票的最佳时机III
碎碎念:头好痒 要长脑子了。
2024-08-12 08:06:08
432
原创 代码随想录算法训练营day38 | 322. 零钱兑换、279.完全平方数 、139.单词拆分、多重背包理论基础
碎碎念:加油参考:代码随想录322. 零钱兑换每个钱币可以使用无数次,所以是完全背包问题。本题求的是装满背包最少用多少件物品,和组合和排列没有关系,所以遍历顺序的两层for循环位置可以互换。动态规划五部曲:反思279.完全平方数题目链接279.完全平方数 本题和上一题很相似。区别只在于上一题的coins变成了完全平方数。动态规划五部曲:反思139.单词拆分题目链接139.单词拆分本题的每个物品都可以使用多次,所以这是完全背包的问题。本题的结果对单词顺序有要求,所以本题求的是排列数
2024-08-09 19:30:11
976
原创 代码随想录算法训练营day37 |完全背包理论基础、518. 零钱兑换 II 、377. 组合总和 Ⅳ、70. 爬楼梯 (进阶)
碎碎念:加油!!
2024-08-08 17:14:46
549
原创 代码随想录算法训练营day36 | 1049. 最后一块石头的重量 II、494. 目标和、474.一和零【不熟悉】
1049. 最后一块石头的重量 II。
2024-08-07 17:54:42
994
原创 代码随想录算法训练营day28 | 122.买卖股票的最佳时机II 、55. 跳跃游戏 、45.跳跃游戏II、1005.K次取反后最大化的数组和
碎碎念:好累 加油。
2024-07-30 15:11:56
421
原创 代码随想录算法训练营day25 | 491.递增子序列 、46.全排列 、47.全排列 II、51.N皇后、37.解数独
碎碎念:加油加油,继续坚持。
2024-07-27 17:08:22
742
原创 代码随想录算法训练营day23 |39. 组合总和 、40.组合总和II 、131.分割回文串
碎碎念:加油参考:[代码随想录](https://programmercarl.com/0039.%E7%BB%84%E5%90%88%E6%80%BB%E5%92%8C.html。
2024-07-25 15:58:28
1034
原创 代码随想录算法训练营day21 | 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
碎碎念:加油。
2024-07-23 14:28:52
329
原创 代码随想录算法训练营day20 | 235. 二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点
碎碎念:加油哇。
2024-07-22 18:51:20
820
原创 代码随想录算法训练营day18 | 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先
碎碎念:参考:代码随想录530.二叉搜索树的最小绝对差直白想法:先中序遍历,得到有序的序列,然后再求最小绝对差。这样的操作多开辟了一个数组,其实可以优化,使用双指针来求最小绝对差。双指针优化:定义一个pre指向当前遍历之前的节点。定义一个全局变量result,出事为maxint,记录相邻节点差值的最小值。递归三部曲:反思注意本题也是暗含回溯的。501.二叉搜索树中的众数普通二叉树的解法: 要把符合题意的解都放到数组中。用map来统计元素出现的频率。然后map转为vector进行排序。再求
2024-07-21 15:48:06
985
原创 代码随想录算法训练营day16 | 513.找树左下角的值、112. 路径总和、113. 路径总和 II、106.从中序与后序遍历序列构造二叉树
碎碎念:加油!!!
2024-07-18 20:54:49
651
原创 代码随想录算法训练营day15 | 110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和、222.完全二叉树的节点个数
碎碎念:参考:代码随想录110.平衡二叉树高度是节点距离叶子节点的距离。——后序深度是节点距离根节点的距离。——前序本题使用后序遍历。递归三部曲:反思257. 二叉树的所有路径题目链接257. 二叉树的所有路径应该用前序遍历,因为使用前序遍历才会输出路径。**回溯:**比如上图,把5弹出去,把2弹出去,这个过程就是回溯。递归三部曲:反思注意看是怎么回溯的,也注意积累一下字符串的处理。404.左叶子之和遍历到9的时候可以知道它是不是叶子节点,但是无法判断是不是为父节点的左孩子。
2024-07-17 17:05:44
1151
原创 代码随想录算法训练营day14|226.翻转二叉树、101. 对称二叉树、104.二叉树的最大深度、111.二叉树的最小深度
碎碎念:加油!!!!
2024-07-16 21:26:29
563
原创 代码随想录算法训练营day13|二叉树递归遍历144、145、94,二叉树层序遍历102、107、199、637
碎碎念:拿下!第一次刷,还没有看迭代的部分。本博客只有用递归实现的前中后遍历和层次遍历。
2024-07-15 21:24:51
474
原创 代码随想录算法训练营day11 |150. 逆波兰表达式求值、239. 滑动窗口最大值【没写代码仅有思路】、 347.前 K 个高频元素【没写代码仅有思路】
碎碎念:加油。
2024-07-14 19:09:38
509
原创 代码随想录算法训练营day10 |232.用栈实现队列、225. 用队列实现栈、20. 有效的括号、1047. 删除字符串中的所有相邻重复项
碎碎念:坚持住。
2024-07-14 17:06:45
431
原创 代码随想录算法训练营day9 |151.翻转字符串里的单词、卡码网:55.右旋转字符串、28. 实现 strStr()的思想(KMP),没写代码
碎碎念:小小题目,轻松拿捏(不是。
2024-07-12 21:43:16
775
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
6