week1 Linear部分
Basic基础
Reorder List
Reverse Nodes in K-Group
Tree Sum
Length of the longest substring
moving average from data stream
simply path
largest rectangle in histogram
trapping water
练习部分Linear :
2sum1
2sum2
evaluate reverse polish rotation
gas station
minimum windows substring
partition list
remove nth node from tail
sort colors
valid parentheses
copy linked list with random pointer
first bad version
High Level进阶
@highest product of 3
container with most
candy
top k elements
sort transformed array
linked list cycle
remove k digits
3 sum smaller
closest binary tree value 2
感觉练习有些题比basic要简单,可以先做。
反正先做完basic和练习再做进阶。
总结:
首先需要数据结构总结,其次是每道题的总结
数据结构总结
以java为例,需要完成以下几个数据结构的总结
Array
LinkedList
single
double
String
Hash
set
map
table
Queue
queue
dequeue
数据结构总结
1.原理或者说为了解决什么问题
2.常用api
locate | insert/del | search | iteration |
---|
3.常规操作的时间复杂度
locate | insert/del | search | iteration |
---|
4.本数据结构独有的一些操作等
比如hashmap的iterator怎么写之类
5.常出现题,考察什么。需要后续总结。
leetcode题目总结
1.介绍自己的solution。想象电话面试,电话中面试官直接丢一道题过来,怎么简单描述清楚。一开始能越详细是越好的。后面,归纳成简单几句方便复习。
2.做题中遇到的问题,犯过的错误。
3.对于一类tag的题,归纳总结规律、模板(可选)。
4.对于一类题,常考察的有哪些。
计划与为什么要写博客 计划与为什么要写博客
5.总结任何共性规律,比如 in-place 要怎么做等等。
6.记录任何自己觉得值得记录的。曾经有个北大的,刷完480多道leetcode,做笔记做了几个GB!!!!然后他进了谷歌。关键在于,理清自己的思路,对数据结构,算法的理解,怎么分辨题目该应用哪种等。
为什么要写总结?
我想其实以上已经很清楚了,为了功不唐捐,不刷了就忘,为了面试中遇到同样的题能写对甚至bug free,为了彻底理解题(输出是更好的输入),事半功倍。
网友评论