2022 年 03 月 08 日

今天是否学习了算法训练营的内容:
答案:是

没有学习的话记录一下原因。
原因:无

如果学习的话记录一下学习了多少时间。
学习时长:1小时
(由于今天要改论文,只能先把视频看了,明天再上leetcode上做一遍)

学习了哪些题目:
22、回文链表
23、奇偶链表
24、从尾到头打印链表
25、链表中倒数第k个节点

遇到的问题:

2022 年 03 月 09 日

今天是否学习了算法训练营的内容:
答案:是

没有学习的话记录一下原因。
原因:无

如果学习的话记录一下学习了多少时间。
学习时长:1小时
(下午和晚上应该还有时间学习

学习了哪些题目:
力扣上提交了以下题目:
17、用栈实现队列(LeetCode232)
没问题
18、滑动窗口最大值(LeetCode239)
前几天看过视频讲解的,动手做的时候,漏掉了【在队列中删掉已经移出滑动窗口的元素】
20、移除链表元素(LeetCode203)
能想到用pre和cur指针,但是遇到要删除的元素时,有点不知道怎么处理,又看了一遍动画。即:遇到链表中的val值和没有遇到的时候,pre和cur执行不同的操作

遇到的问题:
感觉是按照看视频的记忆来写的代码,自己的思考不够

2022 年 03 月 10 日

今天是否学习了算法训练营的内容:
答案:是

没有学习的话记录一下原因。
原因:无

如果学习的话记录一下学习了多少时间。
学习时长:3个半小时

学习了哪些题目:
力扣上提交了以下题目:
21、K个一组翻转链表(LeetCode25)
自己做不出来,重新看了几遍动画和代码才写出来,但是有点乱。还有翻转链表又不会了呜呜呜
22、回文链表(LeetCode234)
基本没问题,不过每次写循环结束判断条件的时候都要想很久。
23、奇偶链表(LeetCode328)
基本没问题
24、从尾到头打印链表(剑指offer06)
基本没问题
25、链表中倒数最后k个节点(剑指offer)
基本没问题
遇到的问题:
每次多少遇到一点点小问题,需要提交修改好多次

2022 年 03 月 11 日

今天是否学习了算法训练营的内容:

没有学习的话记录一下原因。

如果学习了的话记录一下学习了多少时间。

5小时

学习了哪些题目:

把题目从头自己做了一遍,并且写了要点。
[反转链表]
用3个指针的迭代法:
pre,cur,temp
注意:
1、temp用来保存还未翻转的部分,最后当cur=NULL,跳出循环时,不执行记录temp
2、pre应该初始化为pre=NULL,,如果用一个值为-1的虚拟节,返回的链表会在末尾多了一个-1,并且还产生环路。
[相交链表]
两个指针A、B的做法
【1】
有相交很容易判断出来,但是没有相交怎么判断?
无相交的话,
两个指针都会指向对方链表结尾的NULL
所以只要return A即可
【2】
特殊情况的判断总是会写错判断条件:当其中一个链表为NULL,无相交。
[合并两个有序链表]
一次做对,没问题
[分隔链表]
最后bigTail->next = NULL,否则会报错,为什么??
[环形链表]
循环的停止条件?
fast != NULL && fast->next != NULL
(我写的是
fast->next != NULL && fast->next->next != NULL
运行时间还会少一些,因为相当于更早地知道了链表是没有环的)
[反转链表2]
迭代法:
【1】
cur要指向left的节点,
pre要指向left的前一个结点,所以一开始指向dummy节点,而不是head。
[复制带随机指针的链表]
【1】
记录哈希表怎么建立
Unordered_map map;
Map[cur] = newNode;
cur和newNode都是链表节点
【2】
怎么返回复制好的新链表?
一开始想的是用虚拟指针的方法,又看了一遍动画之后,知道可以用哈希表返回原链表头节点对应的结点。
【3】
Node* newNode = new Node(cur->val);
下面这种写法为什么会报错?
Node* newNode;
newNode->val = cur->val;
[有效的括号]
【1】
每回考虑地不周到的地方都是特殊情况的判断,比如,没有考虑到可以单独写一个判断,当s中元素的个数是单数的时候,返回false。
【2】
要注意char ch = stk.pop()是取不出值的,要写成char ch = stk.top(); stk.pop();
【3】
发现如果把if…else…,写成if…if…,用到的内存会变多。
把多个if语句用if(xx || xx|| xx)写在一起,用到的内存能减少。
[基本计算器-难]
【1】
怎么判断数字?
if (s[i] >= ‘0’ && s[i] = ‘0’ && s[i] next != NULL
【从尾到头打印链表】
反转链表或者栈。
【链表中倒数最后k个结点】
长度为0的链表就是NULL。

2022 年 03 月 14 日

今天是否学习了算法训练营的内容:
答案:是

没有学习的话记录一下原因。
原因:无

如果学习的话记录一下学习了多少时间。
学习时长:80分钟

学习了哪些题目:
看了第2期1~9的视频

遇到的问题:
8、剑指 Offer 40. 最小的k个数 几乎没有看懂,需要重新看

2022 年 03 月 15 日

今天是否学习了算法训练营的内容:
答案:是

没有学习的话记录一下原因。
原因:无

如果学习的话记录一下学习了多少时间。
学习时长:3小时

学习了哪些题目:
写了以下几个代码:
2、冒泡排序
3、选择排序
4、插入排序
5、快速排序
7、归并排序
8、最小的k个数

遇到的问题:
涉及递归的题目都是能看懂代码,但是自己写不出来:快速排序、归并排序、最小的k个数。
还没真正理解递归。

2022 年 03 月 16 日

今天是否学习了算法训练营的内容:
答案:是

没有学习的话记录一下原因。
原因:无

如果学习的话记录一下学习了多少时间。
学习时长:6小时

学习了哪些题目:
重新写了以下代码:
5、快速排序
7、归并排序
8、最小的k个数

新写了以下代码:
9、数据流中的中位数
10、数组中的逆序对

新看了以下视频:
13、颜色分类
17、盛最多水的容器
18、两数之和
23、跳跃游戏

遇到的问题:
遇到了问题自己会记录下来,但是一直拖延没有去问。明天一定要问!!

2022 年 03 月 17 日

今天是否学习了算法训练营的内容:
答案:是

没有学习的话记录一下原因。
原因:无

如果学习的话记录一下学习了多少时间。
学习时长:4.5小时

学习了哪些题目:
写了以下代码:
12、合并两个有序数组
13、颜色分类
14、部分排序
17、盛水最多的容器
18、两数之和
23、跳跃游戏

看了以下视频:
15、计算右侧小于当前元素的个数
16、有序数组的平方
19、分发饼干
20、柠檬水找零

2022 年 03 月 18 日

今天是否学习了算法训练营的内容:
答案:是

没有学习的话记录一下原因。
原因:无

如果学习的话记录一下学习了多少时间。
学习时长:5小时

学习了哪些题目:
写了以下代码:
11、合并k个升序链表
19、分发饼干
20、柠檬水找零
22、移掉k位数字
24、摆动序列
25、三数之和
26、最接近三数之和

看了以下视频:
24、摆动序列
25、三数之和
26、最接近三数之和
27、加油站

2022 年 03 月 19 日

今天是否学习了算法训练营的内容:
答案:是

没有学习的话记录一下原因。
原因:无

如果学习的话记录一下学习了多少时间。
学习时长:3.5小时

学习了哪些题目:
将前9个视频中的代码又自己写了一遍。

2022 年 03 月 21 日

今天是否学习了算法训练营的内容:
答案:是

没有学习的话记录一下原因。
原因:无

如果学习的话记录一下学习了多少时间。
学习时长:5小时

学习了哪些题目:
将10~23的题目(除了15以外)重新自己做了一遍,并且总结。

2022 年 03 月 22 日

今天是否学习了算法训练营的内容:
答案:是

没有学习的话记录一下原因。
原因:无

如果学习的话记录一下学习了多少时间。
学习时长:4小时

学习了哪些题目:
将第二周24、25、26、26的题目重新自己做了一遍,并且总结。
将第三周0~8的链接看了。

2022 年 03 月 23 日

今天是否学习了算法训练营的内容:
答案:是

没有学习的话记录一下原因。
原因:无

如果学习的话记录一下学习了多少时间。
学习时长:4小时

学习了哪些题目:
写了第三周2~7题目的代码;
看了视频9.

遇到的问题:
8和9中递归的执行顺序感觉无法理解。

2022 年 03 月 26 日

今天是否学习了算法训练营的内容:
答案:是

没有学习的话记录一下原因。
原因:无

如果学习的话记录一下学习了多少时间。
学习时长:3小时

学习了哪些题目:
看了二叉树10-26中的视频

2022 年 03 月 27 日

今天是否学习了算法训练营的内容:
答案:是

没有学习的话记录一下原因。
原因:无

如果学习的话记录一下学习了多少时间。
学习时长:3小时

学习了哪些题目:
写了二叉树9-15的代码。

2022 年 03 月 28 日

今天是否学习了算法训练营的内容:
答案:是

没有学习的话记录一下原因。
原因:无

如果学习的话记录一下学习了多少时间。
学习时长:2.5小时

学习了哪些题目:
看了第四周1-12的视频。

2022 年 03 月 29 日

今天是否学习了算法训练营的内容:
答案:是

没有学习的话记录一下原因。
原因:无

如果学习的话记录一下学习了多少时间。
学习时长:5小时

学习了哪些题目:
写了第四周1-12的视频对应的代码。
看了第四周13-24的视频。

遇到的问题:
1、视频7比较难,还不是很理解,需要重新看视频。
2、只出现一次的数字Ⅱ、Ⅲ这两道题是去B站搜索看了别的up主的视频才理解的,发现B站上一个up小姐姐讲题讲的很好,up叫做锦鲤的如意喵,她的语言表达能力特别好,讲题的时候让人脑子里有画面感。

2022 年 03 月 30 日

今天是否学习了算法训练营的内容:
答案:是

没有学习的话记录一下原因。
原因:无

如果学习的话记录一下学习了多少时间。
学习时长:4小时

学习了哪些题目:
写了第四周13-24的视频对应的代码。
看了第四周25、26、27的视频。

遇到的问题:
回溯又用到递归了,感觉好难

2022 年 03 月 31 日

今天是否学习了算法训练营的内容:
答案:是

没有学习的话记录一下原因。
原因:无

如果学习的话记录一下学习了多少时间。
学习时长:2小时

学习了哪些题目:
重看岛屿数量和N皇后

遇到的问题:
还是没懂

2022 年 04 月 01 日

今天是否学习了算法训练营的内容:
答案:是

没有学习的话记录一下原因。
原因:无

如果学习的话记录一下学习了多少时间。
学习时长:4小时

学习了哪些题目:
回看周四直播,看懂了子集和N皇后的回溯做法。
又另外做了以下题目:
LC437 火柴拼正方形
LC77 组合
LC40 组合总和Ⅱ

遇到的问题:

2022 年 04 月 02 日

今天是否学习了算法训练营的内容:
答案:是

没有学习的话记录一下原因。
原因:无

如果学习的话记录一下学习了多少时间。
学习时长:6小时

学习了哪些题目:
做了以下几道题:
LC77 组合
LC39 组合总和
LC40 组合总和Ⅱ
LC216 组合总和Ⅲ
LC17 电话号码的字母总和
LC131 分割回文串
LC93 复原IP地址
LC90 子集Ⅱ
LC46 全排列
LC47 全排列Ⅱ
LC491 递增子序列

感觉对回溯算法比较有感觉了!

2022 年 04 月 08 日

今天是否学习了算法训练营的内容:
答案:是

没有学习的话记录一下原因。
原因:无

如果学习的话记录一下学习了多少时间。
学习时长:5小时

做了以下题目:
二叉树的前序遍历
二叉树的中序遍历
二叉树的后序遍历
对称二叉树
相同的树
另一棵树的子树
二叉树的最大深度
N叉树的最大深度
二叉树的最小深度
完全二叉树的节点个数
平衡二叉树
二叉树的所有路径

2022 年 04 月 10 日

今天是否学习了算法训练营的内容:
答案:是

没有学习的话记录一下原因。
原因:无

如果学习的话记录一下学习了多少时间。
学习时长:5小时

做了以下题目:
左叶子之和
找树左下角的值
路径总和
路径总和Ⅱ
从前序遍历与中序遍历构造二叉树
从中序遍历与后序遍历构造二叉树
最大二叉树
合并二叉树
二叉搜索树中的搜索
验证二叉搜索树

2022 年 04 月 11 日

今天是否学习了算法训练营的内容:
答案:是

没有学习的话记录一下原因。
原因:无

如果学习的话记录一下学习了多少时间。
学习时长:5小时

做了以下题目:
二叉搜索树的最小绝对差
二叉搜索树中的众数
二叉搜索树的最近公共祖先
二叉搜索树中的插入操作
删除二叉搜索树中的节点
修建二叉搜索树
将有序数组转换为二叉搜索树
将二叉搜索树转换为类家属
二叉树展开为链表