22022-03-06:
1、学习内容
(1)、视频观看
第14每日温度及之前的带星号视频观看完成,不带星号的部分观看完成。
(2)、leetcode提交
a、完成4题提交
*b、第2题反转链表参照第7题写了一个不是递归的版本
2、问题
(1)、第6题环形链表推理环形入口,推理过程想明白了,但总感觉还是没明白,在边界值上有点迷糊。x代表从头节点到入口节点走了几步?公式讲的是倒退y步,实现中是前进了z步,是不是公式拆成了x=(n-1)(y+z)+z,所以前进了z步?
(2)、链表中只有一个节点,能不能形成一个自循环的环?
【答】:只有一个节点的时,仍然能够成为一个环,此时快慢指针同样能够检测出环且是邹一次就能检测出来。
2022-03-07:
1、学习内容
(1)、视频观看
第15题接雨水观看完成。
(2)、leetcode提交
无
2、问题
(1)、第15题代码中,对情况2的判断,为什么不是用的else if,而是用的if
【答】:是else if,但是该题中使用if和else if是等价的。
2022-03-08:
1、学习内容
(1)、视频观看
无
(2)、leetcode提交
完成3题提交,分别是8复制链表、12最小栈、15接雨水
2、问题
(1)、15接雨水这题还需要再加强一下
2022-03-09:
1、学习内容
(1)、视频观看
完成3题观看,17栈实现队列、18滑动窗口最大值、21K个一组反转链表
(2)、leetcode提交
无
2、问题
无
2022-03-10:
1、学习内容
(1)、视频观看
复习了2反转链表、3相交链表
(2)、leetcode提交
无
2、问题
(1)、反转链表的递归思想,单个节点,反转后的结果还是节点本身,所以这是递归的出口。当head有下一个节点时,将head之后的所有节点当成一个黑盒(一个整体),所以Node n = reverse(head->next)拿到了黑盒中节点全部反转好之后的首节点。然后,将head和黑盒的连接顺序反转,即head->next->next = head; head->next=null;此时反转后的首节点仍然是n,返回n。
(2)、相交链表,链表a长度为a,链表b长度为b,如果二者相交,走了a+b个节点后,两个指针不都指向null了么,为啥是a*b之后才都是null?还有就是,只要有一个节点重合就算相交,还是相交节点以及之后的所有节点都一致才算?例如:1->2->3->7;4->5->2->6,相交于节点2,但是两个链表的长度都是4,所以走了4个节点之后,都为null即没有相交,这种情况就矛盾了。
2022-03-11:
1、问题解答
(1)、只有一个节点时,Node head = new Node(); head.next = head,自身形成的一个环。此时,通过快慢指针,仍然能够检测出是否有环而且慢指针走一步,快指针走两步,就检测出来了。
(2)、相交链表,链表a有a个节点,b有b个节点,最多走a+b-1步就可以检测到是否有相交。
(3)、递归算法的空间复杂度,需要分析递归函数中开辟对象的情况。
2022-03-12:
1、直播课中提及的:
if(length[left] < length[right]) {
left++;
}else {
right–;
}
如果改写成两个if后存在的问题:
if(length[left] = length[right]) {
right–;
}
分析:第一个if方法体执行后left值会改变,从而造成第二个if判断也为真,两个if方法体都执行,原写法中的if-else只会执行其中一个方法体就不等价了。
2022-03-13:
1、自行在leetcode中做了725. 分隔链表这道题,花了一个半小时提交通过了。在一些边界上一开始就没有想清楚,最后一点一点根据提交报错调整后提交通过了。
2022-03-14:
观看视频2题,颜色分类以及盛最多水的容器。
2022-03-15:
1、完成颜色分类以及盛最多水的容器两道题leetcode提交。
问题:
1、盛最多水这道题题目,如果没有时间复杂度的要求,利用一个双循环就可以了吧?
2、这两道题目都有一个共同点,都利用了left和right来控制遍历,而不是从start开始以此向后遍历。
2022-03-16:
1、观看冒泡排序、选择排序两个视频
2022-03-17:
1、观看插入排序、快速排序两个视频
2、编写冒泡排序的代码
2022-03-18:
今天没有看视频和提交Leetcode,加班刚回来。
2022-03-19:
1、观看视频两个,两数之和以及跳跃游戏。
2022-03-20:
1、观看视频3题,涉及分发饼干、柠檬水找零、引导气球。
2、问题
(1)、分发饼干这道题,如果允许多块饼干叠加来满足一个孩子的胃口的情况呢?
(2)、引爆气球这道题,左端排序的情况怎么实现?
2022-03-21:
1、今天把选择排序、插入排序以及快速排序的代码写了一遍,leetcode提交了跳跃游戏和两数之和。
2022-03-22:
1、观看视频二叉树的非递归先序遍历
2022-03-23:
1、今日未学习
2022-03-24:
1、观看直播课
2022-03-26:
1、复习二叉树前序遍历的非递归写法
2022-03-29:
1、leetCode提交从前序和中序遍历构建二叉树、二叉树的最近公共祖先两道题目。
2、观看视频讲解完全二叉树的节点个数、左叶子之和两道题目。
2022-04-03:
1、学习子集、岛屿、N皇后三个题目的讲解
2、leetcode提交子集、N皇后
2022-04-05:
1、学习岛屿数量视频,并提交leetcode代码。
2022-04-06:
1、学习爬楼梯、最大子数组和、找零钱视频,并提交leetcode代码。