好久没写刷题笔记了,简单小结一下这一周多的结果:目前已刷 63 道,平均一天 4 - 5 道,主刷 easy 题。tree 部分的 easy 做了一大半,hash table 的 easy 做了一半左右,linkedlist 部分 easy 题基本做完,现在再按题号顺序跳着做。基本每道题都在 leetcode 自带的 note 上做了笔记,并从前天开始记录每天刷题进度,所以这个博客就有点多余了。应该不会再像之前那样把每道题都 po 上来,但是会用它来做一段时间的刷题总结或者记录一些需要掌握的知识点之类的。
需要掌握的一些基本操作(想到哪写到哪):
1. 把 list 转成数组
2. 把 string 转成字符数组: str.toCharArray()
3. 把字符数组转成 string: String.valueOf(ch)
4. 遍历一个 string 里的每个 substring(brute force 的算法需要用到)
5. 把 integer 反转(考虑溢出问题)
6. 由 5 引申来的:判断一个数是否 palindromic
7. 判断两数组是否相同: Arrays.equals(a1, a2)
8. 判断两字符串是否相同: str1.equals(str2)
9. 判断字符串是否为空: str.isEmpty()
10. 求链表长度
11. 找到 index 为 i 的节点(删除,插入)
12. 删除某节点的两个方法:
1. 找前一个节点使 prev.next = prev.next.next;注意:当需要删除第一个节点时可以在 linkedlist 前加一个 dummynode
2. 改变需要删除的节点的值并删除下一个:del.val = del.next.val; del.next = del.next.next;注意:这种方法不能删除最后一个节点