自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 代码随想录八股文训练营40天总结

1.从0到1比较线性的了解的javaweb开发的流程细节,并且熟悉了很多基础面试题。3.为期40天,养成了每天八股文的习惯,以及通过笔记记录八股文的技巧。2.通过语音的训练方式,掌握了控制语速和说话的流畅程度。

2024-09-17 09:42:21 169

原创 【c++刷题笔记-图论】day62:Floyd 算法、A * 算法精讲

Floyd算法本质是动态规划,递推算出每个节点之间的最短距离。可以用于有负权值的最短路径。Astar 是一种 广搜的改良版。有的是 Astar是 dijkstra 的改良版。

2024-08-05 12:07:31 624

原创 【c++刷题笔记-图论】day61:Bellman_ford 队列优化算法(又名SPFA)、bellman_ford之判断负权回路、bellman_ford之单源有限最短路

对所有边松弛一次,相当于计算起点到与起点一条边相连的节点的最短距离bellman_ford算法的核心就在松弛操作上。

2024-08-05 11:53:41 296

原创 【c++刷题笔记-图论】day59:dijkstra(堆优化版)精讲 、Bellman_ford 算法精讲

模板题,理解题意背模板就行,稠密图使用邻接矩阵建图用dijistra朴素版,稀疏图使用邻接表用dijistra(堆优化版)。Bellman_ford算法理清楚松弛操作。

2024-08-04 17:49:59 466

原创 【c++刷题笔记-图论】day58:拓扑排序、dijkstra朴素版

拓扑排序解决有向图是否有环,和循环依赖问题。dijistra解决求最短路径的问题,不允许有负权值。可以背模板。

2024-08-02 11:26:41 256

原创 【c++刷题笔记-图论】day57:53.寻宝

最小生成树模板题,使用prim算法和kruskal算法。弄清楚原理后背模板。prim算法适用于稠密图,时间复杂度是O(n^2),kruskal算法适用于稀疏图,时间复杂度是O(nlogn)。都是采用贪心策略。

2024-08-01 11:09:01 243

原创 【c++刷题笔记-并查集】day56:108.冗余连接、109.冗余连接II

可以使用并查集处理图的连通性问题,和利用建立并查集处理连接的问题。

2024-07-31 10:19:01 283

原创 【c++刷题笔记-并查集】day55:107.寻找存在的路径

模板记住,并查集1.用于寻找根结点。2.用于将两个结点放入一个集合中。3.判断是否在同一个集合内。

2024-07-30 15:53:34 250

原创 【c++刷题笔记-图论】day54:110.字符串接龙 、105.有向图的完全可达性 、106.岛屿的周长

遇到图的问题一般都dfs和bfs的题,但是有一部分可以不用dfs或者bfs来做,多思考避免出现思维定式。

2024-07-29 12:58:14 294

原创 【c++刷题笔记-图论】day52: 101.孤岛的总面积 、102.沉没孤岛 、103.水流问题 、104.建造最大岛屿

使用dfs或者bfs模板,再找规律,从四边开始遍历和整体替换值、使用map存岛屿的面积。

2024-07-27 12:18:13 350

原创 【c++刷题笔记-图论】day51:99.岛屿数量、100.岛屿的最大面积

dfs和bfs都是做图的方法,理解题意看看使用什么方法。bfs写法是有模板的,可以背下来。

2024-07-26 11:40:58 195

原创 【c++刷题笔记-图论】day50:98. 所有可达路径

深度优先遍历,跟回溯是一样的。一条路走到黑,撞了南墙才回头,寻找其他的路径。

2024-07-25 09:45:08 253

原创 【c++刷题笔记-单调栈】day49: 42. 接雨水 、84.柱状图中最大的矩形

单调栈。在解决左边更大或右边更大的问题可以考虑单调栈方法。

2024-07-24 11:38:51 470

原创 【c++刷题笔记-单调栈】day48: 739. 每日温度 、496.下一个更大元素 I 、503.下一个更大元素II

单调栈,单调递增是求下一个更大的元素,单调递减是下一个更小的元素。单调栈就是记录之前遍历过的元素。

2024-07-23 11:49:37 410

原创 【c++刷题笔记-动态规划】day47: 647. 回文子串、 516.最长回文子序列

回文系列问题,从两边的方向考虑,中间为回文,左右相同则为回文,左右不同则不为回文。并且是从底向上,从左到右遍历。

2024-07-22 15:08:35 262

原创 【c++刷题笔记-动态规划】day45: 115.不同的子序列 、583. 两个字符串的删除操作 、 72. 编辑距离

编辑距离问题,初始化每个字符修改的次数。然后统计删除操作的个数。

2024-07-20 10:51:07 363

原创 【c++刷题笔记-动态规划】day44:1143.最长公共子序列 、 1035.不相交的线 、 53. 最大子序和 、392.判断子序列

子序列问题,判断dp数组的递推就行了。

2024-07-19 09:24:57 238

原创 【c++刷题笔记-动态规划】day43: 300.最长递增子序列 、 674. 最长连续递增序列、 718. 最长重复子数组

子序列和子数组问题,使用以i-1为结尾统计每一个最大值。

2024-07-18 12:28:21 242

原创 【c++刷题笔记-动态规划】day42:188. 买卖股票的最佳时机 IV、309. 买卖股票的最佳时机含冷冻期、714. 买卖股票的最佳时机含手续费

股票问题,分清楚状态就很容易做了。持有状态分为前几天一直持有的状态、前几天不持有今天买入的状态。不持有状态分为前几天一直不持有状态,前几天持有今天卖出状态。

2024-07-18 11:27:11 219

原创 【c++刷题笔记-动态规划】day41: 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II 、

两个状态,持有和不持有。持有是前几天买入没有卖出的状态和今天刚刚买入的状态。不持有是前几天卖出和今天卖出的状态。dp数组初始化第一天持有就一定是第一天买入的。今天依赖前几天的状态取最大值。

2024-07-16 22:41:37 540

原创 【c++刷题笔记-动态规划】day40: 198.打家劫舍 、 213.打家劫舍II 、 337.打家劫舍III

打家劫舍问题有俩个状态,偷和不偷。依赖前两个状态。遇到循环问题分为两种情况讨论,[0,n-2],[1,n-1]。树形dp使用长度为2的数组,下标0表示不偷,下标1表示偷。利用这两个状态进行推导。

2024-07-15 11:51:18 373

原创 【c++刷题笔记-动态规划】day38: 322. 零钱兑换 、 279.完全平方数 、139.单词拆分

遇到求数量题可以尝试使用递推公式为dp[j-weight[i]]+1。

2024-07-14 17:29:22 247

原创 【c++刷题笔记-动态规划】day37:完全背包理论基础、518.零钱兑换II、377. 组合总和 Ⅳ、卡码网:57. 爬楼梯

完全背包,先遍历物品再遍历背包是求组合数,先遍历背包再遍历物品是求排列数。求组合的个数使用dp[j]+=dp[j-nums[i]];

2024-07-12 13:30:03 386

原创 【c++刷题笔记-动态规划】day36:1049. 最后一块石头的重量 II 、 494. 目标和 、 474.一和零

需要掌握技巧,抽象出背包问题,还有解决多维度的背包的情况。

2024-07-11 11:17:29 294

原创 【c++刷题笔记-动态规划】day34:01背包问题 二维 、 01背包问题 一维 、416. 分割等和子集

了解背包dp的使用方法和技巧。

2024-07-10 11:10:26 295

原创 【c++刷题笔记-动态规划】day33: 62.不同路径 、 63. 不同路径 II 、343. 整数拆分 、96.不同的二叉搜索树

动态规划是由多个重复的子问题组成,如何解决这些子问题就是思考的方向。分析出递推公式和初始化dp数组以及确定遍历顺序。

2024-07-09 10:47:44 416

原创 【c++刷题笔记-动态规划】day32: 509. 斐波那契数 、 70. 爬楼梯 、 746. 使用最小花费爬楼梯

理解dp数组的定义,它代表什么很重要。初始化,需要考虑清楚。递推公式需要理解。

2024-07-08 12:07:11 261

原创 【c++刷题笔记-贪心】day30:56. 合并区间 、 738.单调递增的数字

贪心算法,需要一定的技巧,覆盖区间可以直接用back()函数修改右边界。修改数字可以使用flag来记录需要修改的数字的下标。

2024-07-06 15:19:19 292

原创 【c++刷题笔记-数组】day29:452. 用最少数量的箭引爆气球、 435. 无重叠区间 、 763.划分字母区间

区间覆盖问题,先排序,判断好边界。

2024-07-05 17:07:03 356

原创 【c++刷题笔记-贪心】day28: 134. 加油站 、 135. 分发糖果 、860.柠檬水找零 、 406.根据身高重建队列

贪心就是以局部推全局并且没有反例的情况,当遇到不同维度的贪心时,需要分开讨论。

2024-07-05 15:04:01 473

原创 【c++刷题笔记-贪心】day27: 122.买卖股票的最佳时机II 、 55. 跳跃游戏 、 45.跳跃游戏II 、 1005.K次取反后最大化的数组和

贪心没有规律。需要总结,从局部最优推到全局最优。

2024-07-03 14:17:06 257

原创 【c++刷题笔记-贪心】day26:455.分发饼干 、376. 摆动序列 、53. 最大子序和

贪心题就是需要总结,以小见大。通过局部最优判断出整体最优。

2024-07-02 11:21:38 179

原创 【c++刷题笔记-回溯】day25:491.递增子序列 、46.全排列 、47.全排列 II、332.重新安排行程、51.N皇后

回溯去重逻辑需要记清楚,分解大问题为小问题,然后依次解决。回溯不清楚一定要画图理解。

2024-07-01 13:37:10 268

原创 【c++刷题笔记-回溯】day24:93.复原IP地址 、 78.子集 、 90.子集II

需要在字符串中加入同一个字符时,使用添加的字符做标记进行分割。子集问题在每次递归开始时统计。去重使用树枝和树层去重逻辑,前一个标记为false时表示是回溯回来的表示在同一层,所以需要去重。

2024-06-29 12:01:52 191

原创 【c++刷题笔记-回溯】day23: 39. 组合总和 、40.组合总和II 、 131.分割回文串

选好递归终止条件,了解同一树层和同一树枝。

2024-06-28 15:04:09 214

原创 【c++刷题笔记-回溯】day22: 77. 组合 、 216.组合总和III 、 17.电话号码的字母组合

利用好回溯模板,注意结束条件和选择对象。将选取的对象抽象为树结构,画图出来判断出递归的条件。

2024-06-27 11:17:13 284

原创 【c++刷题笔记-二叉树】day21: 669. 修剪二叉搜索树 、108.将有序数组转换为二叉搜索树 、 538.把二叉搜索树转换为累加树

建树和修改树,可以考虑使用左右子树接受递归的值,达到删除和修改的要求。

2024-06-26 16:20:44 206

原创 【c++刷题笔记-二叉树】day20: 235. 二叉搜索树的最近公共祖先 、 701.二叉搜索树中的插入操作 、 450.删除二叉搜索树中的节点

利用好二叉搜索树的特性,二叉树插入的时候只需要在空结点处插入,二叉树搜索删除操作需要判断是否为最左子树。

2024-06-25 11:45:28 232

原创 【c++刷题笔记-二叉树】day18: 530.二叉搜索树的最小绝对差 、 501.二叉搜索树中的众数 、 236. 二叉树的最近公共祖先

可以用额外结点来接收前一个结点。统计结点频率可以使用一边统计一边更新的方式。把问题划分为多个子问题,在一对一解决。

2024-06-24 12:48:35 145

原创 【java开发笔记】RabbitMQ--超时队列和死信队列

死信队列(Dead Letter Queue, DLQ)是一种特殊的消息队列,用于存储无法被正常消费的消息。超时队列是一种用于处理需要在指定时间内被处理的消息队列。如果消息在设定的时间内没有被消费,则会被视为超时消息。

2024-06-23 15:48:51 617

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除