目录
LeetCode和剑指offer至少刷两遍!!!
一、算法题
1、链表类
- 一个原则:画图。做链表题画图,能够降低思考负担,提高正确率。
- 两个考点:指针的修改、链表的拼接
- 三个注意:易出错的地方
出现了环,造成死循环
分不清边界,导致边界条件出错
搞不懂递归怎么做 - 四个技巧
虚拟头:虚拟头指向头结点,虚拟头就是新的头结点,但其不是题目给的节点,不参与运算,因此不需要特殊判断。
快慢指针:例如一个指针一步走2个,一个指针一步走1个。链表不支持随机访问,例如找中间结点,或者找倒数第2个节点(一个指针先走两部,慢指针再走)
穿针引线:多用于拼接链表,方便书写
先穿再排后判空(看哪儿行的代码会空指针异常,一般需要考虑next) - 如果大家用递归去解链表的题, 一定要注意自己写的是前序还是后序。
如果是前序,那么「只思考子结构即可,前面的已经处理好了,怎么处理的,不用管。非要问,那就是同样方法。后面的也不需考虑如何处理,非要问,那就是用同样方法」
如果是后续,那么「只思考子结构即可,后面的已经处理好了,怎么处理的,不用管。非要问,那就是同样方法。前面的不需考虑如何处理。非要问,那就是用同样方法」
二、技术面
回答思维路线
- 这个东西是什么?怎么做的?有什么作用?有什么好处?有什么坏处?
- 当有一个这种东西的时候,想想多个此物相互之间是否有什么作用?(友元无法继承、没有相互性、没有传递性)
- 任何东西都有从效率方面进行考虑。可以先来一句,提高了XX 效率(节省了额外的空间和时间开销),降低了XX效率(副本、赋值、破坏了封装特性,导致系统可维护性变差,开辟一定的空间保存指针的指针的引用计数,单独开辟线程在空闲的时候free操作,不适合很多底层的操作)
- 比较两个协议,比如HTTP和HTTPS,HTTPS多了加密,SSL握手,流程多了,就考虑回答
延时高,部署成本高(证书,CPU计算,资源,服务器计算)。
阅读资料
网盘链接
提取码:8ayu
大佬总结帖
https://blog.csdn.net/neverever01/article/details/108237531