- 博客(50)
- 收藏
- 关注
原创 代码随想录算法训练营第四十六&四十七天
卡码网题目涵盖了多个算法问题,包括字符串接龙、有向图的完全联通、岛屿的周长和寻找存在的路径。其中,110. 字符串接龙要求从起始字符串通过每次改变一个字符,最终转换为目标字符串,且中间字符串必须在给定字典中。解题思路包括构建图并通过广度优先搜索(BFS)寻找最短路径,时间复杂度为O(n),空间复杂度为O(n)或O(n^2)。105. 有向图的完全联通则涉及判断有向图是否完全联通,通常通过深度优先搜索(DFS)或BFS遍历图来实现。其他题目如岛屿的周长和寻找存在的路径也涉及图论和搜索算法的应用。这些题目旨在帮
2025-05-22 21:14:16
261
原创 代码随想录算法训练营第四十五天
本文介绍了两个与孤岛相关的算法问题:孤岛的总面积和沉没孤岛。两个问题都基于一个由1(陆地)和0(水)组成的矩阵,孤岛指的是被水域完全包围且不接触矩阵边缘的陆地区域。 孤岛的总面积:通过深度优先搜索(DFS)或广度优先搜索(BFS)遍历矩阵,计算所有孤岛的总面积。首先标记边缘岛屿,剩余的即为孤岛,最后累加其面积。时间复杂度为O(nm),空间复杂度为O(nm)。 沉没孤岛:同样使用DFS或BFS遍历矩阵,标记边缘岛屿,然后将未标记的孤岛区域(1)转变为水域(0)。时间复杂度为O(nm),空间复杂度为O(nm)。
2025-05-20 20:12:35
1297
原创 代码随想录算法训练营第四十四天
卡码网的两道题目分别涉及岛屿数量和岛屿最大面积的计算。99. 岛屿数量要求计算由1(陆地)和0(水)组成的矩阵中岛屿的数量,岛屿由相邻的陆地连接而成。通过深度优先搜索(DFS)或广度优先搜索(BFS)遍历地图,及时标记已访问的陆地,避免重复计算,时间复杂度和空间复杂度均为O(nm)。100. 岛屿的最大面积则要求计算岛屿的最大面积,面积由组成岛屿的陆地总数决定。同样使用DFS或BFS遍历地图,记录每个岛屿的面积并比较最大值,时间复杂度和空间复杂度也为O(nm)。两道题均通过Flood Fill算法实现连通区
2025-05-19 21:04:37
1170
原创 代码随想录算法训练营第四十二&四十三天
本文总结了LeetCode和卡码网的三道题目:42. 接雨水、84. 柱状图中最大的矩形和98. 所有可达路径。接雨水问题通过单调栈解决,时间复杂度为O(n),空间复杂度为O(n)。柱状图中最大的矩形同样使用单调栈,时间复杂度为O(n),空间复杂度为O(n)。所有可达路径问题通过DFS深搜解决,时间复杂度为O(m),空间复杂度为O(m)。通过这些题目,练习了单调栈和DFS的应用。
2025-05-17 15:42:48
917
原创 代码随想录算法训练营第四十一天
本文总结了LeetCode中关于单调栈的三道题目:739. 每日温度、496. 下一个更大元素 I 和 503. 下一个更大元素 II。每道题目都通过单调栈的思想解决了寻找数组中下一个更大元素的问题。739题通过单调栈记录温度递增的索引差,496题通过映射和单调栈找到nums1中元素在nums2中的下一个更大元素,503题则通过遍历两遍数组处理循环数组的情况。所有题目的时间复杂度均为O(n),空间复杂度也为O(n)。通过这些练习,进一步巩固了单调栈的应用。
2025-05-15 20:21:20
1273
原创 代码随想录算法训练营第四十天
本文主要介绍了LeetCode中两道关于回文子串和回文子序列的题目:647. 回文子串和516. 最长回文子序列。对于647题,通过动态规划的方法,统计字符串中所有回文子串的数量,时间复杂度为O(n^2),空间复杂度为O(n^2)。对于516题,同样使用动态规划,找出字符串中最长的回文子序列长度,时间复杂度为O(n^2),空间复杂度为O(n^2)。文章还总结了动态规划在解决各类问题中的应用,包括斐波那契数列、背包问题、股票交易等,并提供了往期打卡的链接。
2025-05-14 11:53:29
925
原创 代码随想录算法训练营第三十九天
本文总结了LeetCode中关于字符串编辑距离的三道题目:115. 不同的子序列、583. 两个字符串的删除操作和72. 编辑距离。这些题目都涉及通过增删改操作使字符串匹配或达到目标状态,核心思路是使用动态规划,通过二维数组记录状态转移。115题统计字符串s的子序列中t出现的次数;583题计算使两个字符串相同所需的最小删除步数;72题求将一个字符串转换为另一个字符串所需的最少操作数(插入、删除、替换)。三题的时间复杂度和空间复杂度均为O(nm),其中n和m为字符串长度。解决这类问题的关键在于理解状态转移方程
2025-05-13 20:11:50
1375
原创 代码随想录算法训练营第三十八天
本文总结了LeetCode中的几道经典动态规划与回溯算法题目,包括最长公共子序列、不相交的线、最大子数组和、判断子序列以及找出3位偶数。每道题目都提供了问题描述、解题思路、复杂度分析以及代码实现。最长公共子序列和不相交的线问题通过动态规划解决,最大子数组和问题采用贪心或动态规划,判断子序列问题则通过顺序匹配或动态规划实现。最后,找出3位偶数问题通过回溯算法解决。这些题目涵盖了动态规划和回溯算法的核心思想,适合算法学习者深入理解与应用。
2025-05-12 15:33:25
1310
原创 代码随想录算法训练营第三十七天
本文总结了LeetCode中几道关于子序列和数组的题目,包括最长递增子序列、最长连续递增序列、最长重复子数组和数组的最小相等和。每道题都提供了问题描述、解题思路、时间复杂度和空间复杂度分析,并附上了Java代码实现。通过这些题目,练习了动态规划、二分查找等算法技巧,帮助理解如何高效解决子序列和数组相关的问题。
2025-05-10 17:52:04
1391
原创 代码随想录算法训练营第三十五&三十六天
本文总结了LeetCode上多道关于买卖股票最佳时机的题目,涵盖了不同交易限制条件下的解决方案。每道题目都通过动态规划的思路,分别考虑了交易次数、冷冻期、手续费等因素,逐步优化了状态转移方程。具体题目包括: 121. 买卖股票的最佳时机:只能进行一次交易,通过维护持有和未持有状态,找到最大利润。 122. 买卖股票的最佳时机 II:可以进行多次交易,通过状态转移计算最大利润。 123. 买卖股票的最佳时机 III:最多进行两次交易,通过维护多个状态来计算最大利润。 188. 买卖股票的最佳时机 IV:最多进
2025-05-09 23:08:02
1175
原创 代码随想录算法训练营周末二
今天去试了一下周赛,就做出了一个,第二题用哈希加遍历统计就直接超时了做了一些动态规划的题目,感觉对动态规划的题目不够熟练。
2025-04-06 20:54:44
1122
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人