- 博客(23)
- 收藏
- 关注
原创 代码随想录第四十一天
2. 不同的二叉搜索树难度:🔥🔥🔥🔥建议:今天两题都挺有难度,建议大家思考一下没思路,直接看题解,第一次做,硬想很难想出来求递推公式时,要多举例找关系,可以想一想当前的dp[i]可不可以由前面的得到,同时要时刻结合dp[i]本身的含义寻找关系。
2022-10-31 21:28:29 598 1
原创 代码随想录第三十六天
2. 划分字母区间难度:🔥🔥🔥建议:今天三道可以说是重叠区间问题,大家可以好好感受一下。都属于那种看起来好复杂,但一看贪心解法,惊呼:这么巧妙!还是属于那种,做过了也就会了,没做过就很难想出来。不过大家把如下三题做了之后, 重叠区间基本上差不多了3. 合并区间难度:🔥🔥🔥🔥建议:本题相对来说就比较难了。
2022-10-26 20:11:13 746
原创 代码随想录第三十五天
2. 根据身高重建队列难度:🔥🔥🔥建议:本题有点难度,和分发糖果类似,不要两头兼顾,处理好一边再处理另一边3. 用最少数量的箭引爆气球难度:🔥🔥🔥🔥建议:本题是一道重叠区间的题目,好好做一做,因为后面三道题目,都是重叠区间。
2022-10-25 21:12:24 788
原创 代码随想录第二十四天
回溯算法模板–来自代码随想录//for循环可以理解是横向遍历,backtracking(递归)就是纵向遍历void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {处理节点;backtracking(路径,选择列表);// 递归回溯,撤销处理结果}}
2022-10-15 19:51:18 1838
原创 代码随想录第二十三天
2. 将有序数组转换为二叉搜索树难度:🔥🔥建议:本题简单一些,可以尝试先自己做做与从中序与后序遍历序列构造二叉树和构造一棵最大的二叉树思路相似,以一个节点作为分割点,然后递归处理左区间,右区间。以及循环不变量在定义区间的使用十分重要。3. 把二叉搜索树转换为累加树难度:🔥🔥建议:本题也不难,在求二叉搜索树的最小绝对差和众数那两道题都讲过了双指针法,思路也是一样的4.二叉树总结来自代码随想录在二叉树题目选择什么遍历顺序是不少同学头疼的事情,我们做了这么多二叉树的题目了,Carl给大家大体分分类。
2022-10-13 12:23:54 1910
原创 代码随想录第二十二天
2. 二叉搜索树中的插入操作难度:🔥🔥建议:本题比想象中简单,可以先自己想一想应该怎么做,然后看视频讲解,就会发现本题为什么比较简单了3. 删除二叉搜索树中的节点难度:🔥🔥🔥🔥建议:相对于插入操作,本题就有难度了,涉及到改树的结构删除节点涉及到结构的调整所以相对二叉搜索树添加节点要难。关键在于第五种情况,需要自己去深刻理解。初学掌握递归这种写法就够了。
2022-10-12 22:05:19 1943
原创 代码随想录第二十一天
2. 二叉搜索树中的众数难度:🔥🔥🔥建议:和二叉搜索树的最小绝对差差不多双指针思路,不过这里涉及到一个很巧妙的代码技巧3. 二叉树的最近公共祖先难度:🔥🔥🔥🔥建议:本题较难,先看视频讲解。
2022-10-12 22:03:03 1951
原创 代码随想录第二十天
2.合并二叉树难度:🔥🔥建议:这次是操作两个二叉树了,可以先看视频理解一下,优先掌握递归3. 二叉搜索树中的搜索难度:🔥🔥建议:递归和迭代都可以掌握一下,因为本题较简单,了解一下二叉搜索树的特性。
2022-10-12 21:59:55 1975
原创 代码随想录第十八天
2.路径总和递归函数什么时候需要返回值?什么时候不需要返回值?这里总结如下三点:如果需要搜索整棵二叉树且不用处理递归返回值,递归函数就不要返回值。如果需要搜索整棵二叉树且需要处理递归返回值,递归函数就需要返回值。如果要搜索其中一条符合条件的路径,那么递归一定需要返回值,因为遇到符合条件的路径了就要及时返回。(本题的情况)3.从中序与后序遍历序列构造二叉树。
2022-10-10 22:40:02 2033
原创 代码随想录第十七天
2.二叉树的所有路径难度:🔥🔥🔥建议:第一次接触回溯的过程。优先掌握递归3.左叶子之和难度:🔥🔥建议:搞清楚什么是左叶子,剩下的就是二叉树的基本操作了。优先掌握递归。
2022-10-10 22:37:46 2082 2
原创 代码随想录第十六天
2.二叉树的最小深度难度:🔥🔥建议:和最大深度 看似差不多,其实差距还挺大,有坑,优先掌握递归3.完全二叉树的节点个数难度:🔥🔥🔥建议:需要了解,普通二叉树 怎么求,完全二叉树又怎么求。优先掌握递归。
2022-10-10 22:35:49 2117
原创 代码随想录第十五天
学会二叉树的层序遍历我们可以做下面十道题目,使用层序遍历可以很轻松解决这些问题102. 二叉树的层序遍历107. 二叉树的层序遍历 II199. 二叉树的右视图637. 二叉树的层平均值429. N 叉树的层序遍历515. 在每个树行中找最大值116. 填充每个节点的下一个右侧节点指针117. 填充每个节点的下一个右侧节点指针 II104. 二叉树的最大深度111. 二叉树的最小深度2. 翻转二叉树难度:🔥🔥建议:优先掌握递归3.对称二叉树难度:🔥🔥建议:优先掌握递归。
2022-10-10 22:33:07 2351
原创 代码随想录第十四天
每次写递归,都按照这三要素来写,可以保证大家写出正确的递归算法!确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。确定每一层递归需要处理的信息。在这里也就会重复调用自己来实现递归的过程。2.二叉树的迭代遍历难度:🔥🔥🔥。
2022-10-10 22:29:54 2053
原创 代码随想录第十三天
后缀表达式对于计算机来说是十分友好的,而我们人更习惯于中缀表达式2.滑动窗口最大值难度:🔥🔥🔥🔥🔥🔥3.前K个高频元素难度:🔥🔥🔥🔥理解什么是大顶堆,小顶堆以及什么时候该使用大顶堆,小顶堆。4.栈与队列总结。
2022-10-03 13:21:41 2786
原创 代码随想录第十一天
灵活运用Stack的等方法2.用队列实现栈难度:🔥Deque接口继承了Queue接口所以 Queue 中的 add、poll、peek等效于Deque中的addLast、pollFirst、peekFirst3.有效的括号难度:🔥🔥多看多练,对于这类问题一定要思考好方向,找出特殊情况再去写代码4.删除字符串中的所有相邻重复项难度:🔥🔥在考虑相同元素的消除时,栈会是我们需要思考使用的一个数据结构。
2022-10-02 22:29:56 2899
原创 代码随想录第八天
了解位运算符实现交换的方法明白反转区间的定义是左闭右开还是左闭右闭2.反转字符串II难度:🔥🔥🔥要熟悉java中类型的使用与转换4.翻转字符串里的单词难度:🔥🔥🔥🔥双指针法实现去除空格是比较困难的,使用和append会更容易对指定区间进行反转这种方法要熟练使用去除空格中if(c!= ' ')是判断当c不为空格时我们添加c,如果c为空格则去判断我们的sb字符串中最后一位是否为空格,如果不是,则将c(此时指向空格)添加到sb中,继续向后遍历5.左旋转字符串难度:🔥🔥。
2022-09-29 12:32:28 2851
原创 代码随想录第七天
在哈希法中有一些场景就是为数组量身定做的在本题的情况下,使用map的空间消耗要比数组大一些的,因为map要维护红黑树或者哈希表,而且还要做哈希函数,是费时的!数据量大的话就能体现出来差别了3.三数之和难度:🔥🔥🔥🔥这种解法的时间复杂度为O(n ^ 2)在去重时我们需要明白与的区别,如果是后者,那么我们可能会因为前一个数据没有记录到而直接跳过后面两个数也需要去重操作剪枝操作也很重要,很考验一个人的思维能力4.四数之和难度:🔥🔥🔥🔥该题的时间复杂度为O(n ^ 3)
2022-09-28 11:53:11 2837
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人