- 博客(19)
- 收藏
- 关注
原创 90.子集II
子集问题,相当于另一种组合问题,前面的组合问题需要在临时集合中存满数据,才会把结果添加到结果集合里,而子集则在每次递归中都将temp加入到result中,因为集合中有重复元素,且要防止结果中出现重复元素,所以要有剪枝操作;
2024-10-09 15:19:40 54
原创 515.寻找树行中最大值
也是一个层序遍历的题目,然后我为了快一点,,没有采用对树二次遍历(第一次把树全部取出,第二次遍历集合)而是在递归过程中完成。
2024-09-26 20:55:17 210
原创 637.二叉树每层的平均值
只需要对输出结果求和就可以了,注意求和时要用long类型,不然会过不了大数字的测试。大部分就是普通的层序遍历,没什么特殊的。这也是个层序遍历的问题。
2024-09-26 20:05:28 106
原创 二叉树迭代遍历(前序,中序,后序)
前序和后序情况大致相同,不同的是后序遍历要先访问右子树,遍历完成后需要对结果进行反转。按照别人的,理解了一下,但是理解不了啊,知道实现的过程了,但是做不到靠自己写出来。因此我在后序遍历中使用了两个栈,第二个栈负责输出正确的数据。中序遍历摧毁了我的道心(想不出来啊,悲。
2024-09-25 16:01:11 228
原创 树的递归遍历(前序,中序,后序)
如果关于这三个顺序的遍历还是不太理解可以去了解一下“前置递归和后置递归”,理解这个之后,这里就很好想得通了。举个例子,如果是前序遍历,那么就是直接把根节点的值拿出来:既尚未对子树进行遍历时就把根节点的值取出。这里的前序中序后序,其实意思是在何时读取根节点,中序遍历,在遍历左子树完成后再把根节点的值拿出来。
2024-09-25 14:04:40 371
原创 27.移除元素
快慢指针比相向指针好多了,不用考虑特殊情况(考虑特殊情况发现也是符合的)期间遇到了各种各样的麻烦,主要就是数组为空的情况。相向指针之前自己写一直改改改,看了题解才改出来。先用一个双指针用错了,在头尾分别记录索引。
2024-09-24 22:15:39 205
原创 383 赎金信
思路相同的情况下,数组实现的哈希表效率远远高于Map,然后数组的缺点是不能处理大量数据。方法一:因为一个字母只能用一次,这里我也用key存值,然后用value存出现的次数。方法二:因为只有二十六个英文字母,所以可以通过字母模拟哈希表。据说Map性能会差一点,我还没深入学习这些不太了解。
2024-09-24 19:54:11 262
原创 454.四数相加(升级版两数之和)
可以把这个问题转化为前面的两数之和,通过两个双重for循环将复杂度转为O(n^2)也是一个哈希表的题目,直接暴力解复杂度就是O(n^4)了。
2024-09-24 19:26:14 327
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人