前言
受疫情的影响,今年就业形势整体不太乐观,不仅应聘人数远远大于招聘岗位,而且面试难度加大,想拿到大厂offer 更是难上加难!
眼看着2020年已经过去大半,金九银十这个好的时期,如何进入梦寐以求的大厂呢?
刷数据结构与算法题,就是夯实基本功的一大利器。
目前国内的大厂和一些独角兽, 已经越来越效仿硅谷公司的做法,通过面试给定题编程,来考察数据结构和算法的扎实程度。
这里小编就要给大家分享一个数据结构和算法文档+大厂算法与数据结构高频面试题了,非常适合有需要学习数据结构和算法的朋友!由于篇幅原因,不能全部展示。免费领取方式见文末!
目录
一、栈和队列面试题
- 用一个栈实现另一个栈的排序
- 用栈来求解汉诺塔问题
- 生成窗口最大值数组
- 构造数组的MaxTree
- 求最大的矩阵的大小
- 最大值减去最小值小于或等于num的子数组数量
- 设计一个有getMin功能的栈
- 由两个栈组成的队列
- 如何仅用递归函数和栈操作道序一个栈
- 猫狗队列
二、链表面试题
- 环形单链表的约瑟夫问题
- 判断一个链表是否为回文结构
- 将单向链表按某值划分成左边小、中间相等、右边大的形式
- 复制含有随机指针节点的链表
- 两个单链表生成相加链表
- 打印两个有序链表的公共部分
- 在单链表和双链表中删除倒数第K个节点
- 删除链表的中间节点和a/b处的节点
- 反转单向和双向链表
- 反转部分单向链表
三、二叉树面试题
- 遍历二叉树的神级方法
- 在二叉树中找到累加和为指定值的最长路径长度
- 找到二叉树中的最大搜索二叉子树
- 找到二叉树中符合搜索二叉树条件的最大拓扑结构
- 分别用递归和非递归方式实现二叉树先序、中序和后序遍历
- 打印二叉树的边界节点
- 如何较为直观地打印二叉树
- 二叉树的序列化和反序列化
四、递归和动态规划面试题
- 最长递增子序列
- 汉诺塔问题
- 最长公共子序列问题
- 最长公共子串问题
- 龙与地下城游戏问题
- 斐波那契系列问题的递归和动态规划
- 矩阵的最小路径和
- 换钱的最少货币数
- 换钱的方法数
五、字符串面试题
- 判断两个字符串是否互为旋转词
- 将整数字符串转成整数值
- 替换字符串中连续出现的指定字符串
- 字符串的统计字符串
- 判断字符数组中是否所有的字符都只出现过一次
- 判断两个字符串是否互为变形词
- 字符串中数字子串的求和
- 去掉字符串中连续出现k个0的子串
六、大数据和空间限制面试题
- 找到100亿个URL中重复的URL以及搜索词汇的topK问题
- 40亿个非负整数中找到出现两次的数和所有数的中位数
- 一致性哈希算法的基本原理
- 认识布隆过滤器
- 只用2GB内存在20亿个整数中找到出现次数最多的数
- 40亿个非负整数中找到没出现的数
七、位运算面试题
- 整数的二二进制表达中有多少个1
- 在其他数都出现偶数次的数组中找到出现奇数次的数
- 在其他数都出现k次的数组中找到只出现一次的数
- 不用额外变量交换两个整数的值
- 不用任何比较判断找出两个数中较大的数
- 只用位运算不用算术运算实现整数的加减乘除运算
八、数组和矩阵面试题
- 需要排序的最短的数组长度
- 在数组中找到出现次数大于NIK的数
- 在行列都排好序的矩阵中找数
- 最长的可整合子数组的长度
- 不重复打印排序数组中相加和为给定值的所有二元组和三元组
- 未排序正数数组中累加和为给定值的最长的数组长度
- 转圈打印矩阵
- 将正方形矩阵顺时针转动90°
- “之”字形打印矩阵
- 找到无序数组中最小的k个数
Java数据结构和算法
第1章 数据结构和算法的综述
第2章 数组
第3章 简单排序
第4章 栈和队列
第5章 链表
第6章 递归
第7章 高级排序
第8章 二叉树
第9章 红黑树
第10章 2-3-4树和外部存储
第11章 哈希表
第12章 堆
第13章 图
第14章 带权图
第15章 应用场合
目录
结尾
数据结构与算法是互联网大厂的敲门砖,也是开发者精益求精、持续提升的内功基础。
真正让程序员有区分度,企业招聘万年不变的重点 —— 算法与数据结构
对于这些,自己一定要动手实现一遍。我建议是一定要看书。
领取方式:点赞!+关注!加下方小助理即可免费获取