# 2022年3月7日
今天是否学习了算法训练营的内容:
答案:是
如果学习的话记录—下学习了多少时间。
学习时长:6h左右
学习了哪些题目:
遇到的问题:
leetcode 111 递归法没有想出来。
leetcode 450 对于被删节点左右子树都有的情况不太清楚,后询问师兄得解
2022年3月8日
今天是否学习了算法训练营的内容:
答案:是
如果学习的话记录—下学习了多少时间。
学习时长:8h左右
学习了哪些题目:
遇到的问题:
leetcode 108 对于该题中的二叉搜索树是如何保持高度平衡持有疑虑,已解决(思路是二分查找)
leetcode 114 尝试自己写递归用前序遍历解决 目前未成功
2022年3月9日
今天是否学习了算法训练营的内容:
答案:是
如果学习的话记录—下学习了多少时间。
学习时长:6h左右
学习了哪些题目:
遇到的问题:
① leetcode 114 昨天未解决的递归问题今天询问师兄后得解
② 股票六大问题 一开始对第一道股票问题没了解清楚,后来明白后,发现对于后五道题目的理解有极大的帮助。
在这里我记录一下我在解决股票问题所遇到的疑问以及后来的解决思路:1、我一开始对于构建dp三维数组中的第二维里的数字不明白,因为这里面的数字表示的是最大交易次数,我当时的疑问就是怎么就算交易完成一次了,是买入算交易次数+1,还是卖出?后来询问师兄后,我明白了,我有点钻牛角尖了。重点并不在这里,这里我们应该关注的是它状态的变化。拿下面这张图为例:
某一天的交易状态肯定有两种情况。
第一种:持有股票 那么对于该情况,既然要保证该天持有股票,那么他的前一天就会有两种状态中的其中一种,这两种状态是 1、前一天也一直持有股票 2、前一天没有股票但是第二天买入股票。
第二种:未持有股票 对于该情况,既然要保证该天未持有股票,那么他的前一天就会有两种状态中的其中一种,这两种状态是 1、前一天也一直未持有股票 2、前一天持有股票但是第二天卖出股票。
然后我们继续分析 如果要买入股票,就是-prices[i],相反如果要卖出,则是+prices[i]。
最后对于上面两种情况,我们再对每一种情况中对应的前一天的两种状态所得的利润取最大值,不断循环着往后走,等到循环结束,我们就得到了我们想要的值了
而这就是第一道股票题目的思路 把第一道搞懂了 后面几道便问题不大了
2022年3月10日
今天是否学习了算法训练营的内容:
答案:是
如果学习的话记录—下学习了多少时间。
学习时长:5h左右
学习了哪些题目:
遇到的问题:
leetcode 279 关于完全平方数的list的首索引的设置有点问题,我写的是从0开始,结果也通过了,后来推敲了下,0不准确,1是最合理的
剑指offer 05 原地替换字符串中的空格,一句话搞定(面试慎用):return s.replace(” “,”%20”);
leetcode 343 关于循环的边界设置出了点问题这里需要注意的是,for(int j=1;j<i-1;j++)是最合理的,因为如果是j<=i-1,那么当j=1和j=i-1时整数拆分得出的结果是相同的,为了去除冗余,最好设成j<i-1,当然j<=i-1同样可以ac。
2022年3月11日
今天是否学习了算法训练营的内容:
答案:是
如果学习的话记录—下学习了多少时间。
学习时长:5h左右
学习了哪些题目:
遇到的问题:
今天状态不佳 不想写难题 只是攻了一些简单题目
剑指11 要注意在判断数组中值小于数组右侧是 应该是right=mid,以此保证所有数据都被囊括进去。
剑指12 关于最后一行的数据回填还是有问题 明天继续请教师兄
2022年3月12日
今天是否学习了算法训练营的内容:
答案:是
如果学习的话记录—下学习了多少时间。
学习时长:5h左右
学习了哪些题目:
遇到的问题:
关于deque和LinkedList的线程安全方面的区别 :
https://www.cfanz.cn/mobile/resource/detail/mXXpZpWpvEAYP