数据结构
一维:
基础: 数组 array(string), 链表 Linked List
高级: 栈 stack, 队列 queue, 双端队列 deque, 集合 set, 映射 map(hash or map), etc
二维:
基础: 树 tree, 图 graph
高级: 二叉搜索树 binary search tree(red-black tree, AVL), 堆 heap, 并查集 disjoint set, 字典树 Trie,etc
特殊:
位运算 Bitwise, 布隆过滤器 BloomFilter
LRU Cache
算法
- if-else,switch-->branch
- for,while loop-->lteration
递归 Recursion(Divide & Conquer,Backtrace)
搜索 Search: 深度优先搜索 Depth first search, 广度优先搜索 Breadth first search,A*,etc
动态规划 Dynamic Programming
二分查找 Binary Search
贪心 Greedy
数学 Math, 几何 Geometry
注意: 在头脑中回忆上面每种算法的思想和代码模板
学习要点
基本功是区别业余和职业选手的根本. 深厚功底来自于 -- 过遍数
刻意练习 - 练习缺陷弱点地方, 不舒服, 枯燥
五毒神掌
第一遍: 不要死磕, 要看代码学习 (一定要看国际版的高票回答)
第二遍: 自己写和理解
第三遍: 24 小时侯后再练习一遍
第四遍: 一周后再练习
第五遍: 面试前再练习
面试技巧
1,Clarification: 明确题目意思, 边界, 数据规模
2,Possible solutions: 穷尽所有可能的解法
- -compare time/space
- -optimal solution
3,Coding: 代码简洁, 高性能, 美感
- https://shimo.im/docs/rHTyt8hcpT6D9Tj8
- 4,Test cases
来源: http://www.bubuko.com/infodetail-3355966.html