wuyijia

导航

2023年5月26日 #

代码随想录算法训练营第十六天|104. 二叉树的最大深度、559. N 叉树的最大深度、111. 二叉树的最小深度、222. 完全二叉树的节点个数

摘要: 【参考链接】 104. 二叉树的最大深度 【注意】 1. 二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数或者节点数(取决于深度从0开始还是从1开始)。 二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数或者节点数(取决于高度从0开始还是从1开始)。 2.根节点的高度就是二叉树的 阅读全文

posted @ 2023-05-26 17:17 小吴要努力 阅读(9) 评论(0) 推荐(0) 编辑

2023年5月25日 #

代码随想录算法训练营第十五天|102. 二叉树的层序遍历、226. 翻转二叉树、101. 对称二叉树

摘要: 【参考链接】 102. 二叉树的层序遍历 【注意】 1.队列先进先出,符合一层一层遍历的逻辑,而用栈先进后出适合模拟深度优先遍历也就是递归的逻辑。而这种层序遍历方式就是图论中的广度优先遍历,只不过我们应用在二叉树上。 2.遍历的时候要记录队列的大小。就可以知道哪些元素是第几层的。 3.记得首先要判断 阅读全文

posted @ 2023-05-25 19:42 小吴要努力 阅读(8) 评论(0) 推荐(0) 编辑

2023年5月23日 #

代码随想录算法训练营第十四天|144. 二叉树的前序遍历、145. 二叉树的后序遍历、94. 二叉树的中序遍历

摘要: 【参考链接】 1.满二叉树,完全二叉树,二叉搜索树(有数值,有序树)。 2.平衡二叉搜索树:又被称为AVL(Adelson-Velsky and Landis)树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。 3.优先级队列其实是一个堆 阅读全文

posted @ 2023-05-23 14:33 小吴要努力 阅读(11) 评论(0) 推荐(0) 编辑

2023年5月22日 #

代码随想录算法训练营第十三天|239. 滑动窗口最大值、347. 前 K 个高频元素

摘要: 【参考链接】 239. 滑动窗口最大值 【注意】 1.使用单调队列的经典题目。 2.大顶堆每次只能弹出最大值,无法移除其他数值,造成大顶堆维护的不是滑动窗口里面的数值了。所以不能用大顶堆。 3.需要一个队列,放进去窗口里的元素,然后随着窗口的移动,队列也一进一出,每次移动之后,队列告诉我们里面的最大 阅读全文

posted @ 2023-05-22 10:24 小吴要努力 阅读(10) 评论(0) 推荐(0) 编辑

2023年5月20日 #

代码随想录算法训练营第十一天|20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值

摘要: 【参考链接】 20. 有效的括号 【注意】 1.括号匹配是使用栈解决的经典问题。 2.这个命令最后进入a目录,系统是如何知道进入了a目录呢 ,这就是栈的应用(其实可以出一道相应的面试题了)。 3.有三种不匹配的情况,第一种情况,字符串里左方向的括号多余了 ;第二种情况,括号没有多余,但是 括号的类型 阅读全文

posted @ 2023-05-20 13:15 小吴要努力 阅读(13) 评论(0) 推荐(0) 编辑

2023年5月19日 #

代码随想录算法训练营第十天|232. 用栈实现队列、225. 用队列实现栈

摘要: 【参考链接】 1.栈提供push 和 pop 等等接口,所有元素必须符合先进后出规则,所以栈不提供走访功能,也不提供迭代器(iterator)。 不像是set 或者map 提供迭代器iterator来遍历所有元素。 2.栈是以底层容器完成其所有的工作,对外提供统一的接口,底层容器是可插拔的(也就是说 阅读全文

posted @ 2023-05-19 13:18 小吴要努力 阅读(13) 评论(0) 推荐(0) 编辑

2023年5月18日 #

代码随想录算法训练营第九天|28. 找出字符串中第一个匹配项的下标、459. 重复的子字符串

摘要: 【参考链接】 28. 找出字符串中第一个匹配项的下标 【注意】 1.kmp解决的就是字符串匹配的问题。 2.kmp如何知道匹配过哪些字符串,并跳到匹配过的内容后面的字符。 前缀表 3.找到一个子字符串里它的最长相等前后缀。 4.前缀是包含首字母,不包含尾字母的所有子串;后缀只包含尾字母,不包含首字母 阅读全文

posted @ 2023-05-18 13:35 小吴要努力 阅读(13) 评论(0) 推荐(0) 编辑

2023年5月17日 #

代码随想录算法训练营第八天|344. 反转字符串、541. 反转字符串 II、剑指 Offer 05. 替换空格、151. 反转字符串中的单词

摘要: 【参考链接】 344. 反转字符串 【注意】 1.双指针法,原地进行操作。 2.字符串也是一种数组,所以元素在内存中是连续分布。 【代码】 return s.reverse() 1 class Solution(object): 2 def reverseString(self, s): 3 """ 阅读全文

posted @ 2023-05-17 20:48 小吴要努力 阅读(14) 评论(0) 推荐(0) 编辑

2023年5月16日 #

代码随想录算法训练营第七天|454. 四数相加 II、383. 赎金信、15. 三数之和、18. 四数之和

摘要: 【参考链接】 454. 四数相加 II 【注意】 1.a+b作为key,出现次数作为value,0-(c+d)有没有在map集合里出现过,出现的次数做统计。遍历两个数组时间复杂度为O(n2)。 【代码】 1 class Solution(object): 2 def fourSumCount(sel 阅读全文

posted @ 2023-05-16 13:22 小吴要努力 阅读(13) 评论(0) 推荐(0) 编辑

2023年5月15日 #

代码随想录算法训练营第六天|242. 有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和

摘要: 【知识点】 1.当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。 2.哈希法也是牺牲了空间换取了时间,因为要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。 3.三种常用数据结构:数组,set,map 参考链接 242. 有效的字母异位词 【注意】 1.在has 阅读全文

posted @ 2023-05-15 15:35 小吴要努力 阅读(10) 评论(0) 推荐(0) 编辑