Welcome to Leetcode With Adam!
One in tech industry, especially those who want to get in FANG, have to grind Leetcode. I have been struggling with too until i decide to to "play" Leetcode instead of grinding them. I will be sharing my journey here, and hope you can find something useful.
Why Leetcode?
There are a couple of reasons why FANG-like companies use Leetcode as their interview process:
- Google HR analytics department find out a positive pearson correlation between interview Leetcode performance and job performance. Those traditional IQ tests and brain teasers during interview show no such correlation at all.
- FANG company is huge and have different teams using internal tools. It's hard to standardize the interview process as some team have preference of certain stack over another. The interview process might be skewed. Leetcode is a good way to standardize the process with the price of extra grind for the interviewee. They hire general DSA skills, and can afford to train you on the job.
Interview Rubrics
Anything could be quantified to some extend so does interview process. The interview rubrics for FANG-like companies are pretty standard.
Tip
Number 1 to ace the interview is to dance the interview dance.
One rubric they use could serve as a basis to understand what's important and how you Leetcode. 15 points metrics with
- 3 for asking questions, discussing edge cases and planning out ur solution
- 3 for communication
- 3 for getting a working solution
- 3 for time/space complexity analysis
- 3 for code quality and cleanness
To score better during the rubrics, if you only have 20 minutes, you should following the following steps:
Understand:5 mins for understanding questions, asking clarifying questions, discuss edge cases and planning out your solutionPlan:5 mins for dry run of your solution, with example.Execute:5 mins for codingDiscuss:5 mins for discussing potential optimal solution
Now, when you leetcode and practice, you should also follow the structures.
Roadmap
Stage 1
- [x] complexity analysis
- [ ] linked list
- [x] stack
- [x] queue
- [ ] recursion
- [x] enumeration
- [ ] sorting
- [ ] binary search
Stage 2
- [ ] hashmap
- [ ] binary tree
- [x] heap
- [ ] BF and RK string pattern matching
- [ ] Trie
- [ ] DFS and BFS graph traversal
Stage 3
- [ ] 跳表
- [ ] topological sort
- [ ] Dijkstra
- [ ] A*
- [ ] B+ tree
Stage 4
- [ ] 位图
- [ ] BM
- [ ] KMP
- [ ] AC自动机
- [ ] 哈希算法
Leetcode Idols
There are some Leetcode and CP idols that i admire and learn from.
Reference
- 这个人也用了mkdoc for LC模版,非常漂亮
- OI Wiki 不用说了吧,信息学奥赛的wiki, 也是用的mkdoc
- 落谷刷题
- https://leetcode.com/discuss/general-discussion/1000929/solved-all-dynamic-programming-dp-problems-in-7-months
- 残酷刷题群, Huifeng Guan
- bucket and double bucket
- 北航软院的人写的LC通关手册