今天是摆烂的一天,M1实在太难配置csapp的环境了,今天花了至少3个小时在这上面,可能是我智商不够,到最后都没有配置成功。
所以,有缘咱们再见吧,csapp。
明天开始,做cs144的lab吧,那个lab环境已经配好了,所以至少可以开始。
内心很想把M1的csapp环境给配好,但是面向秋招的话,时间实在不够用了,所以只能暂时放弃一下。
老样子,记录一下今天的leetcode刷题情况吧!
dp现在已经基本是看到简单题可以秒出状态方程,老样子,dp就是练,用脊柱写题。
我的目标:7月前刷满800道,平均一天10道题,也就是每天投入时间要达到5个小时。 话说,我每天7:30开始学习,晚上12:00入睡,一天满打满算,学习时间可以达到10个小时。
- 7:30-11:30=>4h,
- 13:00-17:30=>4.5h,
- 19:00-21:00=>2h.
- 22:30-24:00=>1.5h.
减去摆烂时间,一天如果可以达到时间的高效利用,可以达到10h满的学习时间。
今天的话:
- 8:30-10:30=>leetcode 4题
- 10:40-11:20=>csapp
- 13:00-14:40=>leetcode 3题
- 15:00-17:30=>csapp
- 19:20-21:20=>csapp
今天leetcode刷的很平滑,没有遇到特别困难的题目,主要并没有挑战hard。
但是还是有一道题印象很深刻,剑指03(数组中重复的数字)
这道题目很容易就可以ac,但是优化的思路非常锻炼自己,分别是哈希表;原地哈希表。
哈希表又涉及到哈希表的多种构造方式:是数组呢,还是hashmap呢,还是hashset呢,每一种数据结构的优缺点分别是什么?
有时我们刷题,不仅仅是在刷题,要想一下,这道题,如果出现在面试中,还有可能会考察我们什么知识,那些说刷题不会提高基础的,就是纯刷题,认真刷题,好好感受每道题背后蕴含的全部知识,能做到真的非常不容易。
原地哈希,什么叫原地哈希,原地哈希的优点是什么?原地顾名思义就是不申请额外的空间。
长度为n个数组,所有的数均不相同,不妨我们就让num[i]去到索引为num[i]的位置。实际上,在本题的条件下,num[i]就应该去索引为num[i]的位置上。
补充一些java的知识。
刷题很常见的:
- hashmap.keySet()方法返回映射中所有 key 组成的 Set 视图。
- hashmap.getOrDefault() 方法获取指定 key 对应对 value,如果找不到 key ,则返回设置的默认值。
- split() 方法根据匹配给定的正则表达式来拆分字符串。
- string.trim() 方法用于删除字符串的头尾空白符。