算法打卡
文章平均质量分 67
用于记录每天力扣刷题的分享
无敌的平衡步兵
这个作者很懒,什么都没留下…
展开
-
代码随想录算法训练营第三十四天| 198.打家劫舍, 213.打家劫舍II,337.打家劫舍III
今天是动态规划算法学习的第七天,也是打家劫舍的一天。原创 2024-08-16 14:05:31 · 155 阅读 · 0 评论 -
代码随想录算法训练营第三十三天| 322. 零钱兑换, 279.完全平方数 ,139.单词拆分 背包问题总结
对于背包问题,我们需要重点掌握的是01背包和完全背包,多重背包可以经过转换成为01背包。对于dp问题,我们有dp五部曲:1.判断dp数组的含义2.判断dp数组的递推公式3.判断dp数组的初始化方式4.判断遍历顺序5.手动递推进行验证对于01背包问题,我们学习了二维数组的解法和一维数组的解法,一维数组是将二维数组进行了状态压缩得到的结果。对于01背包的应用问题,分为以下几种:1.能否装满背包,或最多装多少2.装满背包有多少种方法3.装满背包的最大价值是多少4.装满背包的最小个数是多少。原创 2024-08-15 14:19:24 · 341 阅读 · 0 评论 -
代码随想录算法训练营第三十二天| 完全背包, 518. 零钱兑换 II, 377. 组合总和 Ⅳ, 70. 爬楼梯 (进阶)
今天是动态规划学习的第五天,主要学习了多重背包问题的原理以及应用,包括多重背包应用中的排列和组合问题的区分。原创 2024-08-14 14:03:08 · 301 阅读 · 0 评论 -
代码随想录算法训练营第三十一天| 1049. 最后一块石头的重量 II, 494. 目标和, 474.一和零
今天是动态规划学习的第四天,主要是关于01背包问题的一些应用场景,包括:在某容量下能装下的最大质量是多少,装满背包有多少种方法,背包容量有多个维度时应该如何求解。感觉背包问题有一个很难的点在于如何把一道题目转换成背包问题进行求解。这个判断是不好做的。可能需要后续的积累。原创 2024-08-13 14:56:11 · 336 阅读 · 0 评论 -
代码随想录算法训练营第三十天| 01背包问题 二维, 01背包问题 一维 , 416. 分割等和子集
今天是动态规划学习的第三天,主要的学习内容包括:01背包问题二维数组解法和一维数组解法,以及01背包问题的应用。原创 2024-08-12 15:08:35 · 840 阅读 · 0 评论 -
代码随想录算法训练营第二十九天| 62.不同路径, 63. 不同路径 II, 96.不同的二叉搜索树
今天是动态规划学习的第二天,接触了一些二维dp的题目。也有一些收获和总结。原创 2024-08-12 11:14:33 · 259 阅读 · 0 评论 -
代码随想录算法训练营第二十八天| 509. 斐波那契数 , 70. 爬楼梯 , 746. 使用最小花费爬楼梯
今天是动态规划学习的第一天,首先学习了动态规划做题的五个步骤,然后接触了一些动态规划的题目。原创 2024-08-11 14:42:26 · 624 阅读 · 0 评论 -
代码随想录算法训练营第二十七天| 452. 用最少数量的箭引爆气球, 435. 无重叠区间, 763.划分字母区间
今天是贪心算法学习的第四天,主要的学习内容是关于重叠区间的相关问题。原创 2024-08-08 14:49:11 · 271 阅读 · 0 评论 -
代码随想录算法训练营第二十六天| 134. 加油站, 135. 分发糖果 , 860.柠檬水找零, 406.根据身高重建队列
今天是贪心算法学习的第三天,感觉有摸到一点门道。贪心算法感觉还是离不开对题目的模拟。原创 2024-08-07 11:39:01 · 537 阅读 · 0 评论 -
代码随想录算法训练营第二十五天| 122.买卖股票的最佳时机II , 55. 跳跃游戏, 45.跳跃游戏II, 1005.K次取反后最大化的数组和
今天是贪心算法学习的第二天,愈发感觉贪心算法非常的抽象,有一些思维上的东西确实有点难想到,希望在做题过程中能够加强贪心算法这部分的思维。原创 2024-08-06 15:00:24 · 152 阅读 · 0 评论 -
代码随想录算法训练营第二十四天| 455.分发饼干, 376. 摆动序列 , 53. 最大子序和
今天是贪心算法学习的第一天,主要的学习内容有:贪心算法的理论基础,以及如何通过局部最优解推导全局最优解。对于贪心的理论基础,贪心算法并没有固定的模板和套路,对于贪心算法的题目其实就是一种模拟题,需要找到一个局部最优的解法,并尝试通过局部最优的方法得到全局最优解。实际做题下来感觉贪心算法就是考察一些trick的题目,很多题目需要去有一些比较好的思维才可以做出来。原创 2024-08-05 12:30:00 · 371 阅读 · 0 评论 -
代码随想录算法训练营第二十三天| 491.递增子序列, 46.全排列, 47.全排列 II, 51. N皇后
今天是回溯算法学习的第四天,完成了回溯算法一刷的所有内容。今天的主要学习内容如下所示:对于非有序数列的去重操作,对有序数列进行全排列,对有序数列全排列并树层去重,以及经典的N皇后问题。原创 2024-08-04 15:53:16 · 287 阅读 · 0 评论 -
代码随想录算法训练营第二十二天| 93.复原IP地址 , 78.子集, 90.子集II
今天是回溯算法学习的第三天。主要的学习内容有:使用回溯算法解决分割子串问题,回溯算法解决子集问题,使用回溯算法对子集问题去重。原创 2024-08-02 11:57:50 · 324 阅读 · 0 评论 -
代码随想录算法训练营第二十一天| 39. 组合总和, 40.组合总和II, 131.分割回文串
今天是回溯算法学习的第二天,主要的学习内容包括:1.组合问题的重复使用 2.组合问题的去重 3.分割问题的处理方法。原创 2024-08-01 14:31:30 · 1883 阅读 · 0 评论 -
代码随想录算法训练营第二十天| 77. 组合, 216.组合总和III, 17.电话号码的字母组合
今天是回溯算法学习的第一天,主要的学习内容包括:回溯算法的基本原理以及用于解决的问题类型,在单集合中进行组合问题,在多集合中进行组合问题。原创 2024-07-31 14:24:00 · 547 阅读 · 0 评论 -
代码随想录算法训练营第十八天| 669. 修剪二叉搜索树, 108.将有序数组转换为二叉搜索树, 538.把二叉搜索树转换为累加树
今天是二叉树学习的第八天。主要的学习内容有:修剪二叉搜索树,将有序数组转化为二叉搜索树,以及使用反中序遍历进行累加树的转换。原创 2024-07-29 16:38:08 · 275 阅读 · 0 评论 -
代码随想录算法训练营第十七天| 235. 二叉搜索树的最近公共祖先 , 701.二叉搜索树中的插入操作 , 450.删除二叉搜索树中的节点
今天是二叉树相关算法学习的第七天。主要的学习内容有:二叉搜索树的最近祖先,以及二叉搜索树的插入和删除操作。原创 2024-07-29 16:05:43 · 315 阅读 · 0 评论 -
代码随想录算法训练营第十六天| 530.二叉搜索树的最小绝对差 , 501.二叉搜索树中的众数, 236. 二叉树的最近公共祖先
今天是二叉树学习的第六天。主要的学习内容有:二叉搜索树相关题目,以及找出二叉树中任意两点的公共祖先问题。原创 2024-07-27 12:43:22 · 199 阅读 · 0 评论 -
代码随想录算法训练营第十四天| 513.找树左下角的值 , 112. 路径总和 , 113. 路径总和ii, 106.从中序与后序遍历序列构造二叉树, 105.从前序与中序遍历序列构造二叉树
今天是学习二叉树的第四天。主要的学习内容有:通过递归查找二叉树最底层最左节点的值;通过回溯遍历二叉树的每条路径并求和;通过中序遍历和前序遍历,中序遍历和后序遍历构建唯一的二叉树。原创 2024-07-25 14:36:05 · 1008 阅读 · 0 评论 -
代码随想录算法训练营第十三天| 110.平衡二叉树 , 257. 二叉树的所有路径 , 404.左叶子之和, 222.完全二叉树的节点个数
今天是二叉树的第三天学习,学到的知识点有:如何判断平衡二叉树,使用回溯法求解二叉树的所有可行路径,求解左叶子之和,通过满二叉树的判断高效求解完全二叉树的结点个数。原创 2024-07-24 15:21:52 · 1563 阅读 · 0 评论 -
代码随想录算法训练营第十二天| 226.翻转二叉树 , 101. 对称二叉树 , 104.二叉树的最大深度, 111.二叉树的最小深度
今天学习了二叉树翻转,判断两二叉树是否相等,以及求解二叉树的深度相关问题,分别都使用了递归法和非递归法进行尝试。原创 2024-07-23 14:55:38 · 660 阅读 · 0 评论 -
代码随想录算法训练营第十一天| 144. 二叉树的前序遍历 , 94. 二叉树的中序遍历, 145.二叉树的后序遍历
今天内容比较多。首先学习了二叉树的基本知识,包括满二叉树、完全二叉树、二叉搜索树、平衡二叉搜索树,以及二叉树的存储方式和遍历方式。对于前序、中序、后序、层次遍历、四种遍历方式,每一种都有递归处理和迭代处理两种写法。都需要熟练的联系和掌握。原创 2024-07-22 15:27:20 · 1207 阅读 · 0 评论 -
代码随想录算法训练营第十天| 150. 逆波兰表达式求值 , 239. 滑动窗口最大值, 347.前 K 个高频元素
结束了暑期的夏令营活动,终于回归到了算法学习中,时间不是很多了,需要花费更多的时间和经历来学习算法和刷题。原创 2024-07-21 15:14:10 · 379 阅读 · 0 评论 -
代码随想录算法训练营第十天|232.用栈实现队列、225.用队列实现栈、20.有效的括号、 1047. 删除字符串中的所有相邻重复项
今天学习了栈与队列这两个数据结构,栈是一个先进后出的结构,在C++中用stack进行表示,有push、pop、top、empty这些属性;队列是一个先进后出的结构,有push、pop、front、back。empty这些属性。在底层实现上,他们都是用deque双向队列进行实现的。原创 2024-07-01 09:56:22 · 410 阅读 · 0 评论 -
代码随想录算法训练营第九天|151.翻转字符串里的单词,卡码网:55.右旋转字符串
总结,感觉字符串的难题就是各种花里胡哨的反转,而且一般都是对空间复杂度有严格要求,尽量在原地完成。原创 2024-06-29 22:30:46 · 407 阅读 · 0 评论 -
代码随想录算法训练营第八天|344.反转字符串,541. 反转字符串II,卡码网:54.替换数字
必须要开始继续刷算法啦!不然机试要烂啦!!!原创 2024-06-29 22:12:50 · 461 阅读 · 0 评论 -
代码随想录算法训练营第五天|242.有效的字母异位词,349. 两个数组的交集,第202题. 快乐数,1. 两数之和
哈希表基础算法原创 2024-05-14 15:51:33 · 426 阅读 · 0 评论 -
代码随想录算法训练营第一天| 24. 两两交换链表中的节点,19.删除链表的倒数第N个节点,面试题 02.07. 链表相交,142.环形链表II
其实本质上还是用到了双指针算法,即设置两个双指针,这两个指针的距离是n,然后一起移动指针,当后面的指针移动到了最后一个链表节点时,前面的指针也就知道了待删除节点的前一个节点,就可以直接进行删除操作。在你交换两个节点时,你需要保存前面的节点和后面的节点。这个题的难点是找到两个链表上的相同的一段子链表。把两个链表进行尾对齐,然后从较短链表的头节点开始一期遍历,依次进行地址比较,从而找到相同地址的相交节点。涉及到了两个知识点,一个是对链表中的环路进行判断,第二点是找到链表中的环路。需要按照图示的顺序进行操作。原创 2024-05-13 13:55:11 · 508 阅读 · 0 评论 -
代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素。
每日算法打卡原创 2024-05-08 21:54:15 · 330 阅读 · 0 评论 -
代码随想录算法训练营第二天| 977.有序数组的平方 ,209.长度最小的子数组,59.螺旋矩阵II
双指针思想的算法题原创 2024-05-09 16:39:44 · 463 阅读 · 0 评论 -
代码随想录算法训练营第三天| 203. 移除链表元素、707. 设计链表、206、反转链表
昨天由于有点事没打卡,今天早上牺牲了健身时间补上了,感觉开始上难度了,希望可以适应这样的节奏。原创 2024-05-11 14:01:15 · 444 阅读 · 1 评论