数据结构与算法
文章平均质量分 85
Kepler_K
这个作者很懒,什么都没留下…
展开
-
代码随想录算法训练营【二叉树篇层序遍历】
层序遍历的时候,判断是否遍历到单层的最后面的元素,如果是,就放进result数组中,随后返回result就可以了。本题依然是层序遍历,只不过在单层遍历的时候记录一下本层的头部节点,然后在遍历的时候让前一个节点指向本节点就可以了。这道题目说是二叉树,但116题目说是完整二叉树,其实没有任何差别,一样的代码一样的逻辑一样的味道。原创 2024-09-09 12:14:31 · 351 阅读 · 1 评论 -
代码随想录算法训练营【动态规划篇】
dp[j]背包容量为j所背的最大价值。物品的价值就是重量。原创 2024-07-23 17:53:36 · 551 阅读 · 0 评论 -
代码随想录训练营【贪心算法篇】
这个四步其实过于理论化了,我们平时在做贪心类的题目 很难去按照这四步去思考,真是有点“鸡肋”。做题的时候,只要想清楚 局部最优 是什么,如果推导出全局最优,其实就够了。原创 2024-07-19 11:42:06 · 420 阅读 · 0 评论 -
代码随想录训练营【回溯篇】
回溯 利用递归的时候下一个startIndex是i+1而不是0去重。回溯+使用all函数判断回文子串。回溯 利用used数组去重。回溯+优化判定回文函数。回溯+高效判断回文子串。回溯 利用set去重。回溯 利用哈希表去重。回溯 使用字典 逆序。原创 2024-07-15 20:49:16 · 336 阅读 · 0 评论 -
代码随想录训练营【二叉树篇】
找到。原创 2024-07-09 22:57:54 · 297 阅读 · 0 评论 -
代码随想录训练营【栈与队列篇】
第三种情况:遍历字符串匹配的过程中,栈已经为空了,没有匹配的字符了,说明右括号没有找到对应的左括号return false。第一种情况:已经遍历完了字符串,但是栈不为空,说明有相应的左括号没有右括号来匹配,所以return false。那么什么时候说明左括号和右括号全都匹配了呢,就是字符串遍历完之后,栈是空的,就说明全都匹配了。第二种情况:遍历字符串匹配的过程中,发现栈里没有要匹配的字符。int(x/y)是向0取整,x//y是向下取整,我们自定义的div是向0取整的整除法函数。原创 2024-06-29 19:22:31 · 1977 阅读 · 0 评论 -
代码随想录训练营【字符串篇】
因为字符串是不可变类型,所以反转单词的时候,需要将其转换成列表,然后通过join函数再将其转换成列表,所以空间复杂度不是O(1)# 记住这种字符串处理方法# 删除前后空白# 反转整个字符串# 将字符串拆分为单词,并反转每个单词return s。原创 2024-06-29 12:34:49 · 653 阅读 · 0 评论 -
代码随想录训练营【哈希表篇】
注:本篇文章代码来源于代码随想录力扣242Python写法一 数组哈希表写法二(没有使用数组作为哈希表,只是介绍defaultdict这样一种解题思路):写法三(没有使用数组作为哈希表,只是介绍Counter这种更方便的解题思路):2.两个数组的交集 349力扣349使用数组Python使用字典和集合使用数组使用集合3.快乐数 202力扣202Python使用集合使用集合使用数组使用快慢指针使用集合+精简使用数组+精简4.两数之和 1力扣原创 2024-06-26 21:13:19 · 314 阅读 · 0 评论 -
代码随想录训练营【链表篇】
链表的重点是设置虚拟头结点。原创 2024-06-26 20:51:21 · 336 阅读 · 0 评论 -
代码随想录训练营【数组篇】
定义引用时使用符号。int a = 10;// ref是a的引用在这个例子中,ref是a的引用,ref和a指向同一个内存地址。因此,通过ref修改变量的值,会直接影响到a。按引用传递:函数直接操作原始数据,提高效率并使修改直接反映到原数据上。按值传递:函数操作的是数据的副本,原数据保持不变,适用于不希望函数修改原数据的情况。选择按引用还是按值传递取决于你的需求:是否希望函数修改原数据,以及是否需要提高性能(避免不必要的数据复制)。原创 2024-06-23 22:57:09 · 377 阅读 · 0 评论