算法篇常见面试题清单

一、排序算法(Sorting)

冒泡排序(Bubble Sort)原理与优化方法

选择排序(Selection Sort)原理与实现

插入排序(Insertion Sort)原理与优化

快速排序(Quick Sort)原理、时间复杂度分析

归并排序(Merge Sort)原理与实现

堆排序(Heap Sort)原理与实现

桶排序(Bucket Sort)适用场景与实现

计数排序(Counting Sort)适用场景与实现

基数排序(Radix Sort)原理与实现

复制代码
## 稳定排序与不稳定排序的区别

二、查找算法(Searching)

顺序查找(Linear Search)

二分查找(Binary Search)及变种(查找左边界/右边界)

插值查找(Interpolation Search)

斐波那契查找(Fibonacci Search)

哈希查找(Hash Search)

在旋转排序数组中查找元素

在二维矩阵中查找元素

三、递归与分治(Recursion & Divide and Conquer)

递归的基本思想与应用场景

斐波那契数列的递归与优化

汉诺塔问题

归并排序的分治思想

快速排序的分治思想

二分查找的分治思想

矩阵的分治法求解

四、双指针与滑动窗口(Two Pointers & Sliding Window)

两数之和(Two Sum)

三数之和(3Sum)

四数之和(4Sum)

盛最多水的容器(Container With Most Water)

最长无重复子串(Longest Substring Without Repeating Characters)

最小覆盖子串(Minimum Window Substring)

移动零(Move Zeroes)

合并两个有序数组(Merge Sorted Array)

五、贪心算法(Greedy)

分发饼干(Assign Cookies)

跳跃游戏(Jump Game)

跳跃游戏 II(Jump Game II)

区间调度问题(Interval Scheduling)

合并区间(Merge Intervals)

加油站问题(Gas Station)

分配任务最小时间(Task Scheduling)

六、动态规划(Dynamic Programming)

爬楼梯(Climbing Stairs)

打家劫舍(House Robber)

打家劫舍 II(House Robber II)

最大子序和(Maximum Subarray)

最长递增子序列(Longest Increasing Subsequence)

最长公共子序列(Longest Common Subsequence)

编辑距离(Edit Distance)

不同路径(Unique Paths)

最小路径和(Minimum Path Sum)

复制代码
## 零钱兑换(Coin Change)
复制代码
## 分割等和子集(Partition Equal Subset Sum)
复制代码
## 买卖股票的最佳时机(Best Time to Buy and Sell Stock)

七、回溯算法(Backtracking)

全排列(Permutations)

组合总和(Combination Sum)

子集(Subsets)

N 皇后问题(N-Queens)

数独求解(Sudoku Solver)

单词搜索(Word Search)

电话号码的字母组合(Letter Combinations of a Phone Number)

八、图算法(Graph Algorithms)

深度优先搜索(DFS)

广度优先搜索(BFS)

拓扑排序(Topological Sort)

最短路径(Dijkstra、Bellman-Ford、Floyd-Warshall)

最小生成树(Prim、Kruskal)

岛屿数量(Number of Islands)

被围绕的区域(Surrounded Regions)

克隆图(Clone Graph)

九、数学与位运算(Math & Bit Manipulation)

最大公约数(GCD)与最小公倍数(LCM)

快速幂(Fast Power)

平方根(Sqrt(x))

判断质数(Prime Number Check)

只出现一次的数字(Single Number)

只出现一次的数字 II(Single Number II)

位运算实现加减乘除

位掩码的应用

✅ 总结

这份清单基本覆盖了 算法篇的所有常见面试题,从排序、查找到递归、双指针、贪心、动态规划、回溯、图算法、数学与位运算都有涉及。

建议你复习时:

先掌握排序、查找、双指针 → 高频且基础。

再攻克动态规划、回溯、图算法 → 面试加分项。

最后补充数学与位运算 → 提升算法思维。

相关推荐
SQL-First布道者5 分钟前
持久层框架的评价标准:只有一个
java·spring boot·spring·tomcat·mybatis·spring jdbc
孔明click339 分钟前
Sa-Token v1.46.0 发布 🚀,来看看有没有令你心动的功能!
java·sa-token·开源·springboot·权限认证
m0_5873830032 分钟前
智慧场馆解决方案实战指南:从系统架构到落地部署全解析
java·spring boot·架构·系统架构
ZC跨境爬虫37 分钟前
LeetCode 13. 罗马数字转整数(多解法详解 + Java Python 实现)
java·python·leetcode
省长42 分钟前
Sa-Token v1.46.0 发布 🚀,来看看有没有令你心动的功能!
java·后端·开源
.道阻且长.43 分钟前
10.LeetCode算法习题讲解--滑动窗口--最大连续为一的个数
算法·leetcode·职场和发展
LayZhangStrive1 小时前
融360 一面
java·面试·后端开发
学习中.........1 小时前
Karpathy nanoGPT 教程到底讲了什么
人工智能·算法·语言模型
城管不管2 小时前
重生——第十次面试之开源中国一面挂
java·linux·开发语言·算法·面试·职场和发展·开源
Java小白笔记2 小时前
Windows系统免软件命令激活
java·网络·人工智能·windows·ai·ai编程