python算法学习总结

数据结构
一维:
基础:数组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

posted @ 2019-12-29 15:30  python坚持者  阅读(374)  评论(0编辑  收藏  举报