06 2022 档案

摘要:90. 子集 II 一样的套路,没啥值得注意的地方 491. 递增子序列 这个有点意思,要求递增,同时还要保证不重复。这时候我之前一直使用的先排序,后回溯,就不行了,因为排序会打乱原来的顺序。 每一层使用一个HashSet来保证每一层不会出现重复的数。 46. 全排列 需要记录当前已经加入列表的数, 阅读全文
posted @ 2022-06-27 13:46 _厨师沙拉 阅读(21) 评论(0) 推荐(0)
摘要:39. 组合总和 基础的回溯,和之前的差别在于这次回溯中,数组元素可以重复。 另外需要注意的是可以剪枝 40. 组合总和 II 不能出现重复的结果。那么每一层就不能使用相同的数字。 另外还是要注意剪枝 131. 分割回文串 用回溯的思想,分割一个,两个,三个...然后再往下递归,回溯,每次切割一个, 阅读全文
posted @ 2022-06-26 14:15 _厨师沙拉 阅读(17) 评论(0) 推荐(0)
摘要:77. 组合 常规回溯算法,注意剪枝优化 216. 组合总和 III 还是一个常规的回溯算法,剪枝优化在于总和数要大于now,并且当前的已经进入列表的数的数量要小于规定的数量 17. 电话号码的字母组合 还是挺简单的回溯算法 这题让我复习了一下二维数组的初始化方式。 一个一维数组,初始化不能静态动态 阅读全文
posted @ 2022-06-24 13:32 _厨师沙拉 阅读(19) 评论(0) 推荐(0)
摘要:235. 二叉搜索树的最近公共祖先 我怎么感觉前几天做过呢... 翻了题解,发现不一样了... 这个题是二叉搜索树,以前的那个是二叉树 对于二叉搜索树来说,第一个在左右两个节点的值中间的节点就是最近的公共祖先节点。 701. 二叉搜索树中的插入操作 没啥难度,二叉搜索树的基本性质 450. 删除二叉 阅读全文
posted @ 2022-06-23 21:32 _厨师沙拉 阅读(15) 评论(0) 推荐(0)
摘要:617. 合并二叉树 递归,求和,注意null值情况 700. 二叉搜索树中的搜索 基础二叉搜索树的遍历,没啥好说的 98. 验证二叉搜索树 关键在于判断左子树的最右节点和右子树的最左节点和根节点的关系 530. 二叉搜索树的最小绝对差 跟一个二叉搜索树的根比较,和其最相近的两个节点分别是左子树的最 阅读全文
posted @ 2022-06-21 14:45 _厨师沙拉 阅读(12) 评论(0) 推荐(0)
摘要:404. 左叶子之和 深搜,记录每个节点是否是左子节点,再判断自己是否是叶子节点 513. 找树左下角的值 层序遍历,每次更新记录的节点 112. 路径总和 深搜 106. 从中序与后序遍历序列构造二叉树 需要注意的是,中序遍历的分出来的数组长度必然和后续遍历的数组长度一样,这就是分割后续数组的要点 阅读全文
posted @ 2022-06-20 10:09 _厨师沙拉 阅读(22) 评论(0) 推荐(0)
摘要:101. 对称二叉树 每次遇到这个题都犯懵,其实很简单。每次递归判断两个节点的左右和右左。 104. 二叉树的最大深度 找深度,基础题,深度优先搜索,别忘了搜索完之后要回调参数 111. 二叉树的最小深度 题目描述有点奇怪,不过没事,按照题意来。 依旧是深度优先搜索,本题要求必须是叶子节点才算数,根 阅读全文
posted @ 2022-06-19 17:56 _厨师沙拉 阅读(30) 评论(0) 推荐(0)
摘要:热热身,先来几道基础题 144. 二叉树的前序遍历 145. 二叉树的后序遍历 94. 二叉树的中序遍历 三种最基础的二叉树的题目,递归解决 除此之外,所有递归可以解决的问题,栈都可以解决。用栈再重新解决一遍这三个问题. 前序遍历的栈解决很简单,右左中放进栈中,提取出来的结果就是中左右 后序遍历难一 阅读全文
posted @ 2022-06-18 10:58 _厨师沙拉 阅读(32) 评论(0) 推荐(0)
摘要:232. 用栈实现队列 一个栈用于存入,另一个栈用于弹出。 225. 用队列实现栈 两个队列没有主次之分,需要放入的时候放到有对象的队列,需要弹出的时候将对象从有对象的队列放到没对象的队列中,返回最后一个对象即可。 20. 有效的括号 典型的用栈解决的问题,括号问题基本上都是栈解决。 需要注意边界条 阅读全文
posted @ 2022-06-17 11:28 _厨师沙拉 阅读(23) 评论(0) 推荐(0)
摘要:344. 反转字符串 左右两个指针,互换 541. 反转字符串 II 反转指定位置的字符串,本质和上面的一样。需要注意边界条件 剑指 Offer 05. 替换空格 简单的字符串复制 如果不想开辟额外的空间,也可以统计一次有多少空格,然后扩展原来的字符串。随后生成对应的char[],然后使用两个指针, 阅读全文
posted @ 2022-06-16 20:33 _厨师沙拉 阅读(34) 评论(0) 推荐(0)
摘要:242. 有效的字母异位词 简单使用数组存储记录即可 1002. 查找共用字符 还是一个用数组存储记录的题 349. 两个数组的交集 根据题意,不需要统计数量的使用HashSet可以统计 202. 快乐数 根据题意,不是快乐数的会出现无限循环,因此使用HashSet统计计算过程 1. 两数之和 用h 阅读全文
posted @ 2022-06-15 10:49 _厨师沙拉 阅读(22) 评论(0) 推荐(0)
摘要:203. 移除链表元素 移除中间的节点其实很简单,但是移除头部节点是一段独特的逻辑。需要简化代码,同时也避免出错,设置一个虚拟头节点,把真正的头节点当作中间节点删除即可。 这种思想很有用,记得在一次面试里,也是链表相关的题,就是卡在头节点的处理逻辑上了。 707. 设计链表 没啥难度,关键在于看清题 阅读全文
posted @ 2022-06-14 15:23 _厨师沙拉 阅读(20) 评论(0) 推荐(0)
摘要:开始准备秋招提前批,重新把算法题捡起来。现在开始记录每天刷题的总结和思考。 704. 二分查找 二分查找是关于数组的最基础的算法,需要注意的地方是数组必须有序才能使用二分查找。 27. 移除元素 移除数组中的元素,最笨的方法是每次需要移除一个元素的时候都将后面的所有元素向前移动一位。这种方法的时间复 阅读全文
posted @ 2022-06-13 16:12 _厨师沙拉 阅读(21) 评论(0) 推荐(0)