2022.03.06

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

学习时长:2小时

学了哪些题目?
1.反转链表
2.反转链表II
3.相交链表
4.合并两个有序链表

遇到的问题:无

思考:
运用反转链表中的递归法也可以解决反转链表II中部分反转的问题(PS:跟II的for循环没有区别甚至更麻烦),将待反转部分首尾节点和其前后节点记录后截断待反转部分,递归反转后再与前后部分连接起来:
pre.next = null;
ListNode start = cur;
for(int i = 0;i < right – left;i++){
cur = cur.next;
}
ListNode end = cur;
ListNode next = cur.next;
cur.next = null;
reverse(start);
pre.next = end;
start.next = next;

2022.03.07

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

学习时长:3小时

学了哪些题目?
1.分隔链表
2.环形链表II
3.复制带随机指针的链表
4.最小栈
5.每日温度
6.接雨水

遇到的问题:无

2022.03.08

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

学习时长:2小时

学了哪些题目?
1.有效的括号
2.基本计算器
3.验证栈序列
4.用栈实现队列

遇到的问题:无

2020.03.09

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

学习时长:3小时

学了哪些题目?
1.滑动窗口最大值
2.K个一组翻转链表
3.二分查找
4.搜索插入位置
5.在排序数组中查找元素的第一个和最后一个位置
6.搜索旋转排序数组
7.寻找两个正序数组的中位数
遇到的问题:寻找两个正序数组的中位数的题目,搞不清楚为什么要在数组位置外操作cut1

2022.03.10

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

学习时长:不足2小时

学了哪些题目?
1.搜索二维矩阵
2.有效三角形个数
3.0~n-1中缺失的数字
4.在排序数组中查找数字I

遇到的问题:无
思考:
搜索二维矩阵这道题目,因为每行每列都是递增的,所以也可以先在矩阵的第一列中二分搜索查找到小于target的最大的数,之后在这一行中二分搜索查找target值。

2022.03.11

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

学习时长:2小时

学了哪些题目?
1.寻找峰值
2.第一个错误的版本
3.山脉数组的峰顶索引
4.有效的完全平方数
5.移除链表元素
6.回文链表
7.奇偶链表
8.从尾到头打印链表
9.链表中倒数第K个节点

遇到的问题:
二分查找中while循环的判断条件什么时候用left<right什么时候用left<=right有些分不清

2022.03.12

今天是否学习了算法训练营的内容?
答案:是。
学习时长:2小时
学了哪些题目?
1.丢失的数字
2.2的幂
3.位1的个数
4.只出现一次的数字3
5.最大单词长度乘积
6.汉明距离
遇到的问题:
位运算的题目虽然整体不是很难,但自己看题目时候总是难以想到用位运算的方法去解决。
记录位运算的几个知识:
s & (s-1)可以做到每次消去s的二进制数中最后一个1,
s & (-s)可以得到s最低位为1的位置

2022.03.13

今天是否学习了算法训练营的内容?
答案:是
学习时长:2小时
学了哪些题目?
1.岛屿数量
2.N皇后
3.火柴拼正方形
遇到的问题:
回溯算法思想虽然比较简单,但是具体应用特别是N皇后问题很复杂,目前还没有完全搞明白,明天需要对N皇后问题再看一下

2022.03.14

今天是否学习了算法训练营的内容?
答案:是
学习时长:2小时
学了哪些题目?
1.排序数组(快排)
2.最小的K个数
3.数据流的中位数
4.合并两个有序数组
遇到的问题:
在写快排代码时,认为等于基准值的数字放在其左右没有影响,但是这样会导致跟基准值相等的那个值在left和right两个位置反复横跳而使程序进入死循环。另外,由于调的是下面的排序方法,,没有left=right的情况,数组会出现越界情况。



学到的知识:
手撕快排,
优先队列内部有自动升序排序的性质,
Lamda表达式升序降序转换((x,y)->(y-x))

2022.03.15

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

学习时长:2小时

学了哪些题目?
1.排序数组(归并)
2.数组中的逆序对
3.合并k个升序链表
4.颜色分类
5.部分排序

遇到的问题:无

2022.03.16

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

学习时长:2小时

学了哪些题目?
1.有序数组的平方
2.盛最多水的容器
3.两数之和
4.计算右侧小于当前元素的个数

遇到的问题:
计算右侧小于当前元素的个数这道题还没完全看懂

2022.03.17

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

学习时长:2小时

学了哪些题目?
1.分发饼干
2.柠檬水找零
3.移掉k位数字
4.跳跃游戏
5.摆动序列

遇到的问题:
不太清楚贪心算法的思路体现在哪里

2022.03.18

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

学习时长:1小时

学了哪些题目?
1.三数之和
2.最接近三数之和

遇到的问题:
今天比较忙,学的比较少,明天继续加油

2022.03.19

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

学习时长:2小时。

学了哪些题目?
1.加油站
2.用最小数量的箭引爆气球

2022.03.20

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

学习时长:2小时。

学了那些题目?
1.二叉树的前序遍历
2.二叉树的中序遍历
3.二叉树的后序遍历
4.二叉树的层序遍历
5.二叉树的锯齿形层序遍历

遇到的问题:无

2022.03.21

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

学习时长:2小时。

学了哪些题目?
1.从前序与中序遍历序列构造二叉树
2.从中序与后序遍历序列构造二叉树
3.路径总和2
4.二叉树的最近公共祖先
5.二叉树的右视图

中序后序遍历构造二叉树的思想与前序中序遍历构造二叉树的思想相似,都是以中序遍历为基准,由于中序遍历时的遍历顺序为左根右,故只需找到根节点(此处需要用到HashMap将节点在中序遍历序列中的位置与数值作为key-value对传入),在中序遍历序列中index小于根节点则为左侧节点,大于根节点你则为右侧节点,根节点由前序遍历序列(根节点为第一个,从前往后遍历)或者后序遍历序列(根节点为最后一个,从后往前遍历)确定。

2022.03.22

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

学习时长:2小时。

学了哪些题目?
1.二叉树展开为链表
2.将有序数组转化为二叉搜索树
3.把二叉搜索树转化为累加树
4.删除二叉搜索树中的节点

破百题纪念一下:

2022.03.23

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

学习时长:2小时。

学了哪些题目?
1.二叉树的序列化与反系列化
2.完全二叉树的节点个数
3.二叉树的最大深度
4.二叉树的最小深度
5.二叉树的所有路径

遇到的问题:无

2022.03.24

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

学习时长:2小时。

学了哪些题目?
1.平衡二叉树
2.左叶子之和
3.找树左下角的值
4.修剪二叉搜索树

遇到的问题:无

2022.03.25

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

学习时长:1小时。

学了哪些题目?
1.二叉搜索树的最近公共祖先
2.二叉搜索树的最小绝对差
3.最大二叉树

遇到的问题:无

2022.03.28

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

学习时长:3小时。

学了哪些题目?
1.爬楼梯
2.斐波那契数
3.最大子序和
4.零钱兑换
5.最小路径和
6.编辑距离

动态规划问题看视频的时候感觉不是很难,但是自己做的时候并没有想象中那么简单,特别是找递推公式这一步。

2022.03.29

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

学习时长:3小时。

学了哪些题目?
1.零钱兑换2
2.不同的二叉搜索树
3.分割等和子集
4.最后一块石头的重量2
5.目标和
6.一和零

遇到的问题:
除了递推公式之外,遍历dp数组的顺序也十分重要,在零钱兑换2这一题中,先遍历钱币面额和先遍历金额总数会得到完全不同的两种情况这是因为先遍历金额总数会导致元素被重复加入多次,比如3=1+2和3=2+1都会被计算在内,所以写要注意一下遍历dp数组的顺序。

动态规划总结:
1.dp数组含义及其下标含义
2.递推公式
3.dp数组初始化
4.遍历顺序
5.打印dp数组

2022.03.30

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

学习时长:2小时。

学了哪些题目?
1.买卖股票的最佳时机
2.买卖股票的最佳时机2
3.买卖股票的最佳时机3
4.买卖股票的最佳时机4
5.最佳买卖股票含冷冻期
6.买卖股票的最佳时机含手续费
7.完全平方数

2022.03.31

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

学习时长:1小时。

学了哪些题目?
1.不同路径
2.不同路径2
3.打家劫舍
4.打家劫舍2
5.打家劫舍3

遇到的问题:无

2022.04.02

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

学习时长:2小时。

学了哪些题目?
1.最长递增子序列
2.最长连续递增子序列
3.最长重复子数组
4.最长公共子序列
5.最长回文子序列
6.最长回文子串

遇到的问题:无

2022.04.03

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

学习时长:1小时。

学了哪些题目?
1.地下城游戏
2.整数拆分
3.三角形最小路径和

遇到的问题:无

2022.04.04

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

学习时长:2小时。

学了哪些题目:
1.剑指 Offer 03. 数组中重复的数字
2.剑指 Offer 04. 二维数组中的查找
3.剑指 Offer 05. 替换空格
4.剑指 Offer 06. 从尾到头打印链表
5.剑指 Offer 09. 用两个栈实现队列
6.剑指 Offer 10- I. 斐波那契数列
7.剑指 Offer 10- II. 青蛙跳台阶问题
8.剑指 Offer 11. 旋转数组的最小数字

2022.04.05

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

学习时长:1小时。

学了哪些题目:
1.剑指 Offer 12. 矩阵中的路径
2.剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
3.剑指 Offer 26. 树的子结构
4.剑指 Offer 27. 二叉树镜像
5.剑指 Offer 28. 对称的二叉树

2022.04.07

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

学习时长:2小时。

学了哪些题目?
1.剑指 Offer 14. 剪绳子
2.剑指 Offer 14-II. 剪绳子II
3.剑指 Offer 15. 二进制中1的个数
4.剑指 Offer 29. 顺时针打印矩阵
5.剑指 Offer 30. 包含min函数的栈
6.剑指 Offer 31. 栈的压入、弹出序列

遇到的问题:
剪绳子II中的贪心算法解法为什么把绳子分成长度为3的小段会使乘积最大不是很理解

2022.04.08

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

学习时长:不足1小时。

学了哪些题目?
1.剑指 Offer 32-I. 从上到下打印二叉树
2.剑指 Offer 32-II. 从上到下打印二叉树II
3.剑指 Offer 32-III. 从上到下打印二叉树III

2022.04.09

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

学习时长:1小时。

学了哪些题目?
1.剑指 Offer 33. 二叉搜索树的后序遍历序列
2.剑指 Offer 34.二叉树中和为某一值的路径
3.剑指 Offer 35.复杂链表的复制
4.剑指 Offer 36.二叉搜索树与双向链表

遇到的问题:
之前剪绳子贪心解法对于剪成长度为3的小段的解释

2022.04.12

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

学习时长:2.5小时。

学了哪些题目?
1.剑指 Offer 44.数字序列中某一位的数字
2.剑指 Offer 45.把数组排成最小的数
3.剑指 Offer 46.把数字翻译成字符串
4.剑指 Offer 47.礼物的最大价值
5.剑指 Offer 48.最长不含重复字符的子字符串

遇到的问题:无

2022.04.13

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

学习时长:2小时。

学了哪些题目?
1.剑指 Offer 49.丑数
2.剑指 Offer 50.第一个只出现一次的字符
3.剑指 Offer 52.两个链表的第一个公共节点
4.剑指 Offer 53.在排序数组中查找数字
5.剑指 Offer 53.0~n-1中缺失的数字

遇到的问题:无

2022.04.14

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

学习时长:2小时。

学了哪些题目?
1.剑指 Offer 54.二叉搜索树的第K大节点
2.剑指 Offer 55.二叉树的深度
3.剑指 Offer 55.平衡二叉树
4.剑指 Offer 56.数组中数字出现的次数

遇到的问题:无

2022.04.17

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

学习时长:2小时。

学了哪些题目?
1.剑指 Offer 57.和为s的两个数字
2.剑指 Offer 57.和为s的连续正数序列
3.剑指 Offer 58.翻转单词顺序
4.剑指 Offer 58.左旋转字符串
5.剑指 Offer 59.滑动窗口最大值
6.剑指 Offer 59.队列的最大值
7.剑指 Offer 61.扑克牌中的顺子
8.剑指 Offer 66.构建乘积数组

2022.04.19

学习时长:2小时。

学了哪些题目?
1.剑指 Offer 60.n个骰子的点数
2.剑指 Offer 62.圆圈中最后剩下的数字
3.剑指 Offer 63.股票的最大利润
4.剑指 Offer 64.求1+2+…+n
5.剑指 Offer 65.不用加减乘除做加法
6.剑指 Offer 67.把字符串转换成整数
7.剑指 Offer 68.二叉搜索树的最近公共祖先
8.剑指 Offer 68.二叉树的最近公共祖先

2022.04.20

学习时长:3小时

学了哪些题目?
1.剑指 Offer 16.数值的整数次方
2.剑指 Offer 17.打印从1到最大的n位数
3.146.LRU缓存

200题留念

2022.04.26

学习时长:1小时

学了哪些题目?
1.子集
2.子集II

好几天没刷题,手都有点生了

2022.04.27

学习时长:3小时

学了哪些题目?
1.组合总和
2.组合总和II
3.组合
4.全排列
5.全排列II

这两天把回溯算法的知识和题目在巩固一下