回顾前一周的习题
哈希表
2月6日:
当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法
242 有效的字母异位词 ✅
349 两个数组的交集 ✅
250 .快乐数 ✖
还没有完成的点在于判断求和部分,哈希方法会使用,但是不是很熟练,后续翻看还需再做。
1 两数之和 ✖
做题过程中不流畅,而且多做了判断,下次再复盘的时候需要再看
2月7日
454 四数相加II ✅
在统计次数输出的时候应该是对应和出现的次数,这点很重要。
383 赎金信 ✅
15 三数之和 ✅
注意剪枝的时候只判断一次,并且是第一个元素nums[0]
18 四数之和✅
虽然做对了,但是在剪枝和去重的时候出了点小问题,还需要再练习。尤其是剪枝的操作,容易判断出错。
2月8日
344 反转字符串 ✅
541 反转字符串II ✖
细节处理不到位,虽然简单,但是没有完全AC
剑指Offer 05.替换空格 ✅
151 翻转字符串里的单词 ✖
没有完全AC,交换的细节处理还有点问题,在最后的判断也还是有一点不顺。
剑指Offer58-II.左旋转字符串 ✅
尝试自己实现的reverse函数没有成功,可能还需要看看reverse的源码。
2月9日
28 实现 strStr() ✅
大部分都做对了,但是少了一点优化,判断为0 的情况,
459 重复的子字符串 ✅
如果 next[len - 1] != 0
,则说明字符串有最长相同的前后缀(就是字符串里的前缀子串和后缀子串相同的最长长度)。
其中len是字符串长度,len-1
是末尾位置
如果len % (len - next[len - 1]) == 0
,则说明数组的长度正好可以被 (数组长度-最长相等前后缀的长度) 整除 ,说明该字符串有重复的子字符串。
2月10日
232 用栈实现队列✅
225 用队列实现栈 ✖
没有想到size控制队列长度,可能是晚上效果不是很好脑子没有转过弯来。后续还要做
2月11日
20 有效的括号