算法日记-01-算法和数据结构概览
1.数据结构
- 一维
- 基础:数组arry(string),链表 linked list
- 高级:栈 stack,队列 queue,双端队列 deque,集合 set,映射 map(hash or map),etc
- 二维
- 树 tree,图 graph
- 高级:二叉搜索树 binary search tree
- 特殊
- 位运算 bitwise,布隆过滤器 bloomFilter
- LRU Cache 缓存算法
在这里插入图片描述
2.算法
-
if-else, switch ---->branch 判断
-
for , while loop —> lteration 循环
-
递归 recursion 递归
-
搜索 search : 深度优先搜索 depth first search , 广度优先搜素 breadth first search , A* ,etc
-
动态规划 dynamic programming
-
二分查找 binary search
-
贪心 greedy
-
数学
3.如何解题?
- 看清题目,确保自己的理解是正确的
- 想想所有可能的解法
- 比较不同的方法的时间,空间复杂度
- 加强
- 开始写代码(多写)
- 举测试案例
4.刷题方法
第一遍
- 前五分钟,思考+读题
- 直接看解法?注意多比较,多比较优劣
- 背人家写好的代码,注意理解
第二遍
- 不要看别人的代码,自己敲出来,leetcode上跑
- 多种解法比较,优化
第三遍
-
二十四小时之后回过头来再做一遍
-
专项练习
第四遍
- 一周之后反复练习相同的题目
第五遍
- 面试前一周恢复性练习
5.小结
- 训练:拆分知识点,刻意练习,反馈
- 刷题方法
- 误区:只做一遍