- 博客(42)
- 收藏
- 关注
原创 代码随想录算法训练营第四十九天| 139.单词拆分、多重背包
从递推公式中可以看出,dp[i] 的状态依靠 dp[j]是否为true,那么dp[0]就是递推的根基,dp[0]一定要为true,否则递推下去后面都都是false了。"apple", "pen" 是物品,那么我们要求 物品的组合一定是 "apple" + "pen" + "apple" 才能组成 "applepenapple"。"apple" + "apple" + "pen" 或者 "pen" + "apple" + "apple" 是不可以的,那么我们就是强调物品之间顺序。
2024-06-04 17:27:13
863
原创 代码随想录算法训练营第四十八天| 70. 爬楼梯(进阶版)、322. 零钱兑换、 279.完全平方数
动态规划,递推公式重要,但是遍历顺序也很重要,甚至比递推公式更难,后面需要对比不同的总结消化一下
2024-06-03 10:51:35
1922
原创 代码随想录算法训练营第四十六天|动态规划:完全背包理论基础、518.零钱兑换II、377. 组合总和 Ⅳ
不太懂,后面要继续深究,①对于排列组合,是背包放在外层循环,还是物品放在外层循环②一维dp数组,01背包要倒叙并且两层循环不可以反过来,而纯完全背包的两层循环顺序可以颠倒
2024-06-02 15:59:51
787
原创 代码随想录算法训练营第四十五天|1049.最后一块石头的重量II、494.目标和、 474.一和零
如何将问题转化为背包问题是一个难点,需要识别出物品,识别出背包
2024-05-31 14:04:50
1060
原创 代码随想录算法训练营第四十四天|01 背包、动态规划:01背包理论基础(滚动数组)、416. 分割等和子集
有点难的一维背包,分割等和子集转化为背包问题
2024-05-30 19:24:53
815
原创 代码随想录算法训练营第三十七天|435. 无重叠区间、763.划分字母区间、56. 合并区间、738.单调递增的数字、968.监控二叉树
贪心结束啦,好多判断重叠区间的题,最后一题挺难
2024-05-25 20:56:01
1122
原创 代码随想录算法训练营第三十四天| 122.买卖股票的最佳时机 II、55. 跳跃游戏、45.跳跃游戏 II
局部最优推出全局最优,找不出反例,试试贪心!
2024-05-21 11:08:27
554
原创 代码随想录算法训练营第三十二天| 51. N皇后、37. 解数独
回溯最后一天,hard题目,一刷先了解一下题目的要求,了解一下解题思路,先大概熟悉一下这些题,二刷的时候,随着对回溯算法的深入理解,再去解决
2024-05-19 13:56:27
551
原创 代码随想录算法训练营第二十五天|235. 二叉搜索树的最近公共祖先 、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点
二叉树专题刷完了,还需要回顾总结,尤其是涉及在遍历过程中用双指针的,对于递归还不是很理解
2024-05-11 15:58:47
355
1
原创 代码随想录算法训练营第二十四天|235. 二叉搜索树的最近公共祖先 、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点
这几道题目的递归函数都是有返回值的,并且让上一个节点的左孩子或者右孩子接住了,之后还是要好好消化消化
2024-05-10 17:21:52
566
原创 代码随想录算法训练营第二十三天|617.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先
虽然基本都是力扣的简单题,但是真的好难,先粗略理解一下,后面继续看。在遍历中融入了处理,不太通透,也不能用之前的递归三部曲理清楚,还是需要对二叉树的遍历先熟练掌握
2024-05-09 22:45:49
497
原创 代码随想录算法训练营第二十二天|654.最大二叉树 、617.合并二叉树 、700.二叉搜索树中的搜索 、 98.验证二叉搜索树
二叉树 加油
2024-05-08 20:23:43
2219
1
原创 代码随想录算法训练营第十九天|104.二叉树的最大深度、111.二叉树的最小深度、222.完全二叉树的节点个数
今天应用递归的思想来做二叉树的题,递归的思想:求解时只需要关注如何把原问题划分成符合条件的子问题,而不需要过分关注这个子问题是如何被解决的。在代码随想录中讲解的各种遍历方式可能应该是具体的递归如何解决子问题的深层逻辑。
2024-05-05 16:49:45
953
2
原创 代码随想录算法训练营第十八天 | 二叉树的层序遍历 226.翻转二叉树 101. 对称二叉树
感觉自己还是没有明白递归, 今天的算法理解的不通透, 之后还要继续看
2024-05-04 20:22:46
1024
1
原创 代码随想录算法训练营第十一天 | 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值
栈与队列第二天 难度不大 上午就刷完了
2024-04-27 11:41:51
269
原创 代码随想录算法训练营第八天 |344.反转字符串、541. 反转字符串II、卡码网54. 替换数字、151.翻转字符串里的单词 、卡码网:55.右旋转字符串
今天写的有点匆忙
2024-04-24 21:19:45
482
2
原创 代码随想录算法训练营第七天 | 454.四数相加II 、383. 赎金信 、 第15题. 三数之和
终于懂了三数(四数)之和的去重原理!454.四数相加II暴力法会超出时间限制,时间复杂度是用数组来保存结果,还是会超出时间限制,原因是最后判断两两数组的和的时候会有重复判断的情况,count一直是以1为单位进行判断的改进:用字典来保存和与次数,相同的数判断一次就可以,count会增加很多,而不是1383. 赎金信。
2024-04-23 21:50:28
580
原创 代码随想录算法训练营第六天| 242. 有效的字母异位词、349. 两个数组的交集、202题. 快乐数、1. 两数之和
明白这个题目只有两种情况,要么是结果是1,要么会无限循环,只要结果中出现了一个重复的,那么接下来的都会是重复上面的过程,因此只要发现有重复的结果了就可以返回false了。最后如果record数组所有元素都为零0,说明字符串s和t是字母异位词,return true。可以用两个数组分别来记录每个字符串中每个字符出现的次数,最后再比较这两个数组是否相同。再进一步想就是,在第一个数组的基础上进行记录第二个字符串中出现的各个字符次数,的 ,这就是set的作用,set中数组是不可以重复的。这个题目的关键是要判断。
2024-04-22 19:29:32
306
原创 代码随想录算法训练营第四天|24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II
【代码】代码随想录算法训练营第四天|
2024-04-21 21:37:20
535
原创 代码随想录算法训练营第三天 |203.移除链表元素、 707.设计链表 、206.反转链表
要点:移除头结点和移除其他节点的操作是不一样的,因为链表的其他节点都是通过前一个节点来移除当前节点,而头结点没有前一个节点,所以引入一个虚拟头节点注意有一个节点的更新是需要分情况讨论的。
2024-04-19 19:53:15
279
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人