goodwish

庄周笔记, 精简版

Mar 26th, 2020
317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 1. 算法问题其实是production 环境下遇到的问题的简化版
  2. 2. 刷题的时间维度,尽量缩短战线:[30,45] days
  3. 3. 整个过程中要不断复习,包括System design 和 Behavioral questions
  4. 4. 语言要从一而终,选了Java就要一直用下去。
  5. 5. Leetcode最好的答案一般在 High-voted solution -> Top comments
  6. 6. 一定要刷高频题!!!按照Frequency 和 Company Tag刷!!!
  7. 7. 一定要写结题报告,记录自己的thinking process 方便自己复习,每次重新刷这道题就要refine解题报告。
  8. 8. 5个必须掌握的Data structure:
  9.     1. LinkedList,
  10.     2. Stack&Queue,
  11.     3. Binary Tree,
  12.     4. HashTable
  13.     5. Heap & Graph
  14. 9. 5个必须掌握的算法:
  15.     1. Binary Search
  16.     2. Divide and merge
  17.     3. DFS & BFS
  18.     4. QuickSort & MergeSort
  19. 10. 6个面试的Category:
  20.     1. Binary Search
  21.     2. BFS/DFS
  22.     3. LinkedList
  23.     4. Array
  24.     5. Data structure的实现
  25.     6. DP (通过Top-Down memorization search)或者战略性放弃。
  26. 11. 面试时候的tips
  27.     1. 能用BFS尽量BFS,一般有的Follow up会要求不用recursion。
  28.     2. Lead the conversation,主导整个面试过程
  29.     3. 听完面试官的题目描述一定要重新用自己的语言rephrase requirement
  30.     4. Rephrase后还要写几个concrete example检验自己理解是正确的
  31.     5. 最重要的是证明自己可以一点点都优化方案
  32.     6. 写代码的时候用Top Down Method
  33.         1. Finish the top-level logic first. 这一点可以在平常的刷题中练习,先写最重要的部分最后实现基础的部分。
  34.         2. 一些可以被分割出来最后实现的部分:
  35.             1. Binary search
  36.             2. Palindrome validation
  37.             3. Edge detection
  38.             4. Result type and comparator
  39.         3. Guard 及时冗余也要做好input validation
  40.         4. Code based on test case,写好一个test input在旁边对照这个进行编程。
  41. 12. 几种不同的Follow up方式:
  42.     1. Addition Result: 要返回最长的字符串长度 -> 返回最长字符串本身
  43.     2. Extend Data: Array -> Stream, Static -> Dynamic
  44.     3. Extra Constraints: Remove Duplicate & Increase Loops
  45.     4. 只允许One Pass: Merge Sorted Array
  46.     5. 限制条件:不许sort,不许HashMap,No extra space, No recursion.
Add Comment
Please, Sign In to add comment