R.K
码龄6年
关注
提问 私信
  • 博客:12,137
    12,137
    总访问量
  • 45
    原创
  • 53,749
    排名
  • 126
    粉丝
  • 0
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2019-01-06
博客简介:

weixin_44426359的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    406
    当月
    0
个人成就
  • 获得173次点赞
  • 内容获得2次评论
  • 获得69次收藏
创作历程
  • 45篇
    2024年
成就勋章
兴趣领域 设置
  • Java
    javamaven
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

prim算法

第二步记录每个节点到已生成最小生成树的距离,用一个midDir一维数据记录,初始值每个节点都不连通,设为一个大数;第一步输入数据,没有路径的地方需要设置成一个大数,类似此路不通的意思。2、遍历完后,找到了最小结点,把它加入到最小生成树,isAddTree = true。定义min:记录节点到最小生成树的最小距离.初始设为MAX_VALUE,因为第一个节点要加入。刚学习prim算法,看了好久,最后还是抄了一遍理解清楚了,现在梳理一下框架。min等于它到最小生成树的距离;3、更新当前结点到最小生成树的距离。
原创
发布博客 2024.10.15 ·
411 阅读 ·
4 点赞 ·
1 评论 ·
3 收藏

代码随想录一刷总结

中间也走过一些弯路,执着于看答案的代码,看懂了再写,但是通过记忆保留下来的代码还是有很多小bug。后来尝试自己在草稿纸上画图,自己写流程,然后把这些流程转换成代码,bug就少了很多。我也初次意识到代码能力只是一部分,逻辑思路清晰了,能事半功倍。现在对于递归,回溯,动态规划,深搜广搜,心中都有了框架。所以给自己定个二刷的目标:解题的思路要熟练清晰,能把解题思路用在包装了的题目上。到现在,有些题目可以自己只听思路,写代码实现。从8月31号开始加入算法训练营,经过六十多天,还是有比较多的收获的。
原创
发布博客 2024.10.07 ·
205 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

代码随想录day52|字符串接龙、有向图的完全可达性、岛屿的周长

经过上面的练习,大家可能会感觉 广搜不过如此,都刷出自信了,本题让大家初步感受一下,广搜难不在广搜本身,而是如何应用广搜。深搜有细节,同样是深搜两种写法的区别,以及什么时候需要回溯操作呢?简单题,避免大家惯性思维,建议大家先独立做题。
原创
发布博客 2024.09.27 ·
240 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

代码随想录Day53|102.沉没孤岛 、103.水流问题 、104.建造最大岛屿

【代码】代码随想录Day53|102.沉没孤岛 、103.水流问题 、104.建造最大岛屿。
原创
发布博客 2024.09.26 ·
287 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

代码随想录Day51|99.岛屿数量 深搜 99.岛屿数量 广搜 岛屿的最大面积

【代码】代码随想录Day51|99.岛屿数量 深搜 99.岛屿数量 广搜 岛屿的最大面积。
原创
发布博客 2024.09.23 ·
104 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

代码随想录Day50|98. 所有可达路径

【代码】代码随想录Day50|98. 所有可达路径。
原创
发布博客 2024.09.19 ·
169 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

代码随想录算法训练营Day16|647. 回文子串、516.最长回文子序列

递推公式:如果第i个元素和第j个元素相等,则在dp[i][j] = dp[i+1][j-1]+2。如果不相等,dp[i][j] = max(dp[i+1][j],dp[i][j-1])dp[i][j]:从第i个元素到第j个元素的最长回文子序列。初始化:dp[i][i] = 1。遍历顺序:从下到上,从左到右。
原创
发布博客 2024.09.19 ·
208 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

代码随想录算法训练营day45|115.不同的子序列、583. 两个字符串的删除操作、72. 编辑距离

这题第一次理解还是很难的,看代码随想录看不懂,去看了b站的视频才明白。明白了思想代码就很容易了。583. 两个字符串的删除操作。
原创
发布博客 2024.09.18 ·
184 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

代码随想录算法训练营Day44|1143.最长公共子序列、1035. 不相交的线、53. 最大子数组和392.判断子序列

dp[i][j]:ch1从[0,i-1]和ch2从[0,j-1]的最长公共子序列长度。递推公式:如果遍历的当前字符相等, dp[i][j] = dp[i-1][j-1] +1;相当于dp数组的左上角不然吧左边和上边的最大值复制下来。初始化,因为i代表i-1,所以初始化的时候第一行第一列初始化成0。遍历顺序,横向遍历和纵向遍历都可以,但必须是从小到大。
原创
发布博客 2024.09.17 ·
242 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

代码随想录算法训练营Day43|300.最长递增子序列、

遍历顺序:外层遍历i,内层遍历j,内层遍历的时候从小到大或者从大到小都可以,因为j一直小于i,i以前的j都更新过了最长长度。dp[i][j]:nums1以i-1位置元素和nums2以j-1位置元素结尾的最长重复子串长度。dp[i]:这里含义是以第i个元素结尾的子序列的最长长度,但是未必会比第i-1个长。递归公式:只有当nums[j]<nums[i]的时候才需要更新。这题简单一些,注意递推的时候只能从前一个元素推过来即可。初始化:都初始化成1,因为最少也是一个元素。这里的i不一定紧贴着j,可以跳跃。
原创
发布博客 2024.09.12 ·
195 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

代码随想录算法训练Day42|188.买卖股票的最佳时机4、309.最佳买卖股票时机含冷冻期\714.买卖股票的最佳时机含手续费

虽然是困难,但是做了3之后也还好,不过是把状态替换成需要循环更新的状态而已。
原创
发布博客 2024.09.11 ·
180 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

代码随想录算法训练Day41|121、买卖股票的最佳时机1、122、买卖股票的最佳时机2、123、买卖股票的最佳时机3

数组第二个维度表示: 1第一次持有,2第一次不持有。3第二次持有,4第二次不持有。状态转移方程很容易能推到出来。需要注意的是初始化的时候可以当天买入当天卖出。当天持有状态 = (前一天持有,前一天不持有-当天价格)的最大值。遍历顺序:看状态都是由前一个状态推出来的,自然是从前向后。dp[i][0]:第i天的时候不持有股票,手头最大金额。dp[i][1]:第i天的时候不持有股票,手头最大金额。初始化:初始化第一天两个状态即可,后面都会更新。
原创
发布博客 2024.09.10 ·
143 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

代码随想录算法训练营Day39|198.打家劫舍 123

做完背包问题,打家劫舍感觉容易好多。主要理解每一家都又两个状态偷和不偷即可。好像回到了最初的爬楼梯。dp[i]: 偷到第i家时候的最大值递推: dp[i] = Math.max(dp[i-2]+nums[i], dp[i-1]);偷第i家和不偷第i家的最大值。初始化:头两家初始化就好了。注意可能数组只有一个元素,导致越界。
原创
发布博客 2024.09.09 ·
356 阅读 ·
4 点赞 ·
0 评论 ·
1 收藏

代码随想录Day39|322. 零钱兑换、279.完全平方数、139.单词拆分

dp[i] : 背包为i容量,这里应该必须是从字符串的[0,i],能用字典单词组合成功为true,否则为false。这里dp[j]是加新单词之前的状态,如果新单词能找到,新单词之前的字符串也能找到,才输出dp[i]=true。递推公式:dp[j] = Math.min(dp[j],dp[j-coins[i]]+1);递推公式:dp[j] = Math.min(dp[j],dp[j-nums[i]]+1);递推公式:dp[i] = set.contains(substring[j,i]) && dp[j]
原创
发布博客 2024.09.08 ·
394 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

代码随想录算法训练营Day37|完全背包问题、518.零钱兑换II、377. 组合总和 Ⅳ、70. 爬楼梯(进阶版)

打印dp数组:手推的时候,我把这题类比成爬楼梯,外层遍历的是腿长,代表我一次能跨几个台阶,内层遍历的就是台阶高度了。然后能跨两步的时候,是把一步一步跨的dp[j],加上当前台阶减去两步的最大方法数(dp[j-2]),加起来。这里计算的是方法数,不是步数,所以不需要再加1.因为在j-2的台阶往j台阶。要么一步一步跨(dp[j] 就是这种情况),要么跨两步(就是dp[j-2])。遍历顺序:外层遍历物品,内层遍历背包,遍历出来是组合数。如果反过来,外层遍历背包,内层遍历物品,遍历出来是排列数。
原创
发布博客 2024.09.07 ·
692 阅读 ·
18 点赞 ·
0 评论 ·
5 收藏

代码随想录Day36|1049.最后一块石头的重量II、494、目标和

和昨天的分割等和子集几乎一样。dp[j]:容量为j的时候,能装下石头重量的最大值。递推公式: dp[j] = Math.max(dp[j], dp[j - stones[i]] + stones[i]);第一个stones代表重量,第二个代表价值。初始化:dp[0]初始化为0就好。遍历顺序:先遍历物品,再遍历空间。遍历空间的时候从大到小,避免重复添加。sum += i;
原创
发布博客 2024.09.06 ·
412 阅读 ·
2 点赞 ·
0 评论 ·
4 收藏

代码随想录算法训练营Day35|01背包的二维dp数组和一维dp数组解法、416. 分割等和子集

第一行从能放下第一个物品的容量开始更新,往后容量都是这个物品的价值,因为物品只有一件,所以不管你包多大,只算当前装进去的物品价值。递推公式:max(dp[i-1][j],dp[i-1][j-weight[i]] + value[i]);如果从前往后遍历的话,会导致一个物品放入多次,而从后往前遍历的话,因为前面的数据都不包含当前物品。dp[i][j]:从0到i物品中取,放入最大容量为j的行李空间中,能装的最大价值是多少。dp[j]:放入最大容量为j的行李空间中,能装的最大价值是多少。
原创
发布博客 2024.09.04 ·
922 阅读 ·
30 点赞 ·
0 评论 ·
5 收藏

代码随想录算法训练营Day33| 62.不同路径 、63. 不同路径 II 、343. 整数拆分 、96.不同的二叉搜索树

因为j是从1开始遍历的,比如j=2时,对其拆分只能拆分成1*1,j=1时,dp[i-j]中必然也拆分出更下一层的j=1,这时候的1*1已经计算过了。递推公式:dp[i] = Math.max(dp[i],Math.max(j*(i-j),j*dp[i-j]))。0 : dp[i-1][j] + dp[i][j-1].到障碍表当中查,如果当前有障碍就记录当前位置的路径0条。递推公式:dp[i][j] = dp[i-1][j] + dp[i][j-1]。dp[i]:数值为i时,当前格子有几种到达路径。
原创
发布博客 2024.09.02 ·
318 阅读 ·
4 点赞 ·
0 评论 ·
6 收藏

代码随想录Day31|509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

状态转移方程: dp[i] = dp[i-1] + dp[i-2];状态转移方程: dp[i] = dp[i-1] + dp[i-2];dp[i]:表示第i个斐波那契数。dp数组: 1 1 2 3 5 8。dp[i]:表示第i个斐波那契数。dp数组: 1 1 2 3 5 8。初始化: 0 ,1;遍历顺序:从前到后;遍历顺序:从前到后;
原创
发布博客 2024.09.01 ·
196 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

代码随想录Day31|56. 合并区间、738.单调递增的数字

738.单调递增的数字。
原创
发布博客 2024.08.31 ·
180 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏
加载更多