当初在准备秋招的时候,算法是一个大难题,不知道该怎么准备,也不知道应该要刷哪些题,只能在网上看面经,然后整理一遍,下面这些题目主要来源三个方面,
(1)我自己遇到的真题
(2)牛客上的面经,别人遇到的真题
(3)有一些大佬github上整理的,我也整理了进来。
对于这些题目,在后期的面试过程当中,基本上大部分都能遇到。因此刷了这些题基本上也就差不多了,整理下来,有个三百左右。
一些题外话,刷题的时候一遍可能会忘记,多刷个几遍就好,但是时间上如果来不及,建议直接重复刷这些题目。
这些题目基本上都是像字节、美团、滴滴、阿里等等这些大厂的真题。如果不信可以翻看牛客网截止某一段时间的面经,一个一个对照。
数组 |
力扣1:两数之和 |
力扣1299:将每个元素替换为右侧最大元素 |
力扣1464:数组中两个元素的最大乘积 |
力扣15:三数之和 |
力扣179:最大数 |
力扣189:旋转数组 |
力扣215:数组中第K个最大元素 |
力扣239:滑动窗口的最大值 |
力扣33:搜索旋转排序数组 |
力扣349:两个数组的交集1 |
力扣350:两个数组的交集2 |
力扣384:打乱数组 |
力扣4:求两个正序数组的中位数 |
力扣40:数组总和 |
力扣41:缺失的第一个正数 |
力扣416:分割等和数组 |
力扣42:接雨水问题 |
力扣442:数组中重复的数据 |
力扣448:找到所有数组中消失的数字 |
力扣45:跳跃游戏(跳跃次数) |
力扣48:旋转图像 |
力扣480:滑动窗口中位数 |
力扣525:连续子数组 |
力扣54:螺旋矩阵 |
力扣55:跳跃游戏(跳跃距离) |
力扣556:下一个更大元素 |
力扣56:合并区间 |
力扣560:和为K的子数组 |
力扣658:找到K个最接近的元素 |
力扣659:分割数组为连续子序列 |
力扣74:搜索二维矩阵 |
力扣84:柱状图中的最大矩行 |
力扣88:合并两个有序数组 |
力扣915:分割数组 |
字符串 |
力扣1312:让字符串成为回文串的最少插入次数 |
力扣139:单词拆分1 |
力扣140:单词拆分2 |
力扣165:比较版本号 |
力扣22:生成括号 |
力扣316:去除重复字母保证字典序最小 |
力扣415:字符串相加 |
力扣43:字符串相乘 |
力扣44:通配符匹配 |
力扣443:字符串压缩 |
力扣557:反转字符串中的单词 |
力扣67:二进制求和 |
力扣72:编辑距离 |
力扣93:复原IP地址 |
剑指offer46:把数字翻译成字符串 |
KMP算法 |
力扣647:一个字符串中有多少个回文字串 |
力扣17:电话号码的字母组合 |
排序算法 |
快速排序 |
插入排序 |
归并排序 |
希尔排序 |
堆排序 |
最长问题 |
最长回文字串 |
最长回文子序列 |
最长连续公共字串 |
最长公共子序列 |
最长连续为1的字串 |
最长有效括号 |
最长无重复字符的连续字串 |
最长等差数列 |
最长上升连续序列 |
最长上升子序列 |
最长和谐子序列 |
动态规划问题 |
力扣121:买卖股票(一次交易) |
力扣122:买卖股票(多次交易) |
力扣134:加油站 |
力扣309:买卖股票(包含冷冻时间) |
力扣322:零钱兑换 |
力扣518:零钱兑换 |
力扣53:最大子緒和 |
力扣674:未经排序数组最长连续递增序列 |
链表
链表 |
力扣109:将有序链表转化为二叉搜素树 |
力扣141:环形链表判断是否有环 |
力扣142:环形链表检测入口位置 |
力扣143:重拍链表 |
力扣160:相交链表 |
力扣206:反转链表 |
力扣21:合并两个有序链表 |
力扣23:合并K和有序链表 |
力扣234:回文联表 |
力扣25:K个一组反转链表 |
力扣328:奇偶链表 |
力扣445:链表求和(头对齐:尾对齐) |
力扣80:删除排序数组中的重复元素 |
力扣82:删除重复元素 |
力扣83:删除排序链表中的重复元素 |
力扣86:分割链表 |
剑指offer:二叉搜索树和双向链表 |
剑指offer22:链表中倒数第K个节点 |
剑指offer54:二叉搜索树中的第K大节点 |
LRU实现 |
|
树 |
力扣102:二叉搜索树的层次遍历 |
力扣105:从前序和中序重构二叉树 |
力扣108:将有序数组转化为二叉搜索树 |
力扣110:平衡二叉树 |
力扣113:路径总和 |
力扣124:二叉树的最大路径和 |
力扣1325:删除给定值的叶子节点 |
力扣144:二叉树的前序遍历(非递归) |
力扣145:二叉树的后续遍历(非递归) |
力扣199:二叉树的右视图 |
力扣208:实现Trie前缀树 |
力扣222:完全二叉树的节点数 |
力扣226:翻转二叉树 |
力扣236:二叉树的最近公共祖先 |
力扣257:二叉树的所有路径 |
力扣297:二叉树的序列化和反序列化 |
力扣450:删除二叉树中的节点 |
力扣543:二叉树的直径长度 |
力扣617:合并二叉树 |
力扣662:二叉树的最大宽度 |
力扣687:最长同值路径 |
力扣94:二叉树中序遍历(非递归) |
力扣958:二叉树的完全性检验 |
力扣98:验证二叉搜索树 |
力扣99:恢复二叉搜索树 |
|
|
|
深搜 |
力扣1254:封闭岛屿的数目 |
力扣200:岛屿的数量 |
力扣209:课程表 |
力扣365:水壶问题 |
力扣46:全排序 |
力扣463:岛屿的周长 |
力扣547:朋友圈 |
力扣695:岛屿的面积 |
力扣733:颜色渲染 |
二维矩阵中寻找最大正方形 |
矩阵中的路径 |
括号生成 |
幂集 |
|
数学问题 |
力扣1240:铺瓷砖 |
力扣202:快乐数 |
力扣204:计算质数 |
力扣37:解数独 |
力扣43:字符串相乘 |
力扣50:计算pow |
力扣509:斐波那契数列 |
力扣679:24点游戏 |
力扣7:回文素数 |
计算表达式的值 |
开平方根函数(会两种) |
数字转16进制 |
|
|
堆栈问题 |
力扣155:最小栈 |
力扣225:用队列实现栈 |
力扣232:用两个栈实现队列 |
力扣312:戳气球 |
面试金典0305:栈排序 |
使用数组实现队列 |
栈的压入弹出序列是否合法 |
会议安排 |
力扣406:根据身高重建队列 |
其他真题 |
力扣135:分发糖果 |
力扣198:打家劫舍 |
力扣213:打家劫舍 |
力扣337:打家劫舍 |
力扣301:删除无效的括号 |
两个线程交替打印奇偶数 |
三个线程顺序打印ABC |
实现读写锁 |
死锁的案例 |
OK。先整理进来,有时间补充。
全部评论
(2) 回帖