# 解决算法面试问题
- 面试的时候,在遇见算法题目的时候,应该揣摩面试官的意图,听好关键词,比如:有序的数列 做查找、要求算法复杂度是O(logN)这类一般就是用二分的思想。
- 算法题目的解题思路分以下四步:
- 先降低数量级,拿可以计算出来的情况(数据)来构思解题步骤
- 根据解题步骤编写程序,优先将特殊情况做好判断处理,比如一个大数组的问题,如果数组 为两个数长度的情况
- 检验程序正确性
- 是否可以优化(由浅到深),有能力的话可以故意预留优化点,这样可以体现个人技术能力
# 刷题思路
- 数组 字符串 链表 (性价比高,多刷)
- 排序(4-6道) 查找(二分10+)
- 树 二叉搜索树 (性价比高,20+)
- 递归 (都看一遍)
- 哈希表 (实现,解决冲突)
- 双指针 (出现的频率极高,多刷,每个档次都刷刷)
- 堆 (精选,别的看看)
- 字典树 (难度较高)
- 动态规划 (难度较高,大厂问得多,放在后期刷20+)
- 栈和队列 (应用层10)
- 位运算 (考察基本功)
1-6 ,10精刷(没刷过的)
9 精刷两三道最少
78 粗刷
# 刷题要求
不看题解
先实现然后优化
算出复杂度 找出最优解 去实现
# 刷题步骤:
1.先审题,抓关键字