哈喽,大家好。今天更新一篇数据结构笔试面试总结。由于百度网盘分享的资料总是失效。所以,我把PDF版本,放在了百度网盘群组中,出现问题,可以和我及时反馈。大家可以加我好友,好友通过后,发送【资料群】给我,会自动拉进群里。
下面总结的这些题目,都是要求在面试中能达到手写的。如果你看了这些题目,没有思路,那接下来的时间,要加强训练了。
关于算法题
算法能力的提升是一个长期积累的过程!
算法能力的提升是一个长期积累的过程!
算法能力的提升是一个长期积累的过程!
因此,不要想着速成了,要扎扎实实走好每一步。建议大家使用C++刷题,学习下STL库的用法,可以避免重复造轮子。当然,C其实也可以,不过刷题效率可能会低一点。
刷题顺序
我是在力扣刷的题目,这么多题目,肯定不可能都刷完。所以要高频题和经典题,要刷一题掌握一个类型,遇到新题需要和刷过的题总结归类到一起,才能以不变应万变,真正提高。
前期刷题,可以参考我CSDN博客转载的一篇叫leetcode高频题目整理_所有题目汇总篇的文章(点击文末阅读原文直达),分类型刷重点题目。中后期刷题建议将重点放在剑指offer+力扣hot100,剑指offer建议刷两遍。从7月 ~ 11月,每天要刷1~2个题目,保持手感。
刷题技巧
刷题只有一个技巧:熟能生巧
第一遍:不会就看答案。学习他人的最优解,建立思维体系,了解所有最优解,方法技巧第一。做题套路,以印象为主。
第二遍:自己想,锻炼逻辑基础。过easy题,记住;做medium,重点题背,反复背。刷过一遍,已经有了自己的思维,现在就是要培养自己的独立做题能力了。自己先尝试写答案,多多少少能写出来一些。写不出来的部分,看下题解,分析下自己卡在哪里。
第三遍:做easy题;做部分medium题,hard题有思路。夯实medium基础。熟练运用做题套路,以做题为主。
第四遍:做面经,开阔思路,了解出题形式。基础牢轻松,不牢就痛苦。
做题厉害的并不是聪明,而是踏踏实实的努力!
链表
删除单链表的重复节点
如何找出链表的倒数第K个元素?
如何找出链表的中间节点?
反转链表
环形链表
单链表相交,如何求交点?
回文链表
移除重复节点
用普通算法实现两个有序链表的合并
树
二叉树先序遍历(递归和非递归)
二叉树中序遍历(递归和非递归)
二叉树后序遍历(递归和非递归)
层次遍历
求二叉树的深度
如何判断二叉树是否相等
如何判断二叉树是否是平衡二叉树
数组
最大子序和
原地移除元素
合并两个有序数组
查找常用字符
寻找数组的中心索引
数组中数字出现的次数
数组中数字出现的次数 II
数组中缺失的元素
按奇偶排序数组
数组是否存在重复元素
有序数组出现次数超过25%的元素
有效的山脉数组
最长连续递增序列
字符串
有效的括号
字符串数字相加
二进制求和
反转字符串
反转字符串中的单词
反转字符串中的元音字母
验证回文串
验证回文字符串 Ⅱ
根据字符串出现频率排序
字符串中的单词
前K个高频单词
检测大写字母
最长的公共前缀
最长特殊序列 Ⅰ
最长特殊序列 II
计数二进制子串
实现字符串的库函数
strcpy
strlen
strcat
atoi
itoa
memmove
排序算法及其改进方法
快速排序
冒泡排序
堆排序
插入排序
选择排序
归并排序
希尔排序
## 结语
因为本公众号申请较晚,暂时没有开通留言功能,欢迎小伙伴们扫码添加我的私人微信,好友通过后发送【交流群】给我,将自动拉你进群。欢迎小伙伴们找我一块聊天唠嗑,共同学习进步。
如果觉得本篇文章对你有帮助,不妨点个【赞】和【在看】支持下作者,这个对我真的很重要!
点击阅读原文可以直达力扣高频题目汇总。
原作者:仲一
文章链接:嵌入式软件工程师笔试面试指南-数据结构
文章来源:公众号-嵌入式与Linux那些事
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。