算法篇常见面试题清单

一、排序算法(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)

位运算实现加减乘除

位掩码的应用

✅ 总结

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

建议你复习时:

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

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

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

相关推荐
亚林瓜子2 小时前
Spring中的异步任务(CompletableFuture版)
java·spring boot·spring·async·future·异步
MuYiLuck2 小时前
redis持久化与集群
java·数据库·redis
一叶飘零_sweeeet2 小时前
Java 项目 HTTP+WebSocket 统一权限控制实战
java·websocket·http·权限控制
7澄12 小时前
深入解析 LeetCode 数组经典问题:删除每行中的最大值与找出峰值
java·开发语言·算法·leetcode·intellij idea
ysyxg3 小时前
设计模式-策略模式
java·开发语言
AI科技星3 小时前
宇宙的几何诗篇:当空间本身成为运动的主角
数据结构·人工智能·经验分享·算法·计算机视觉
Felix_XXXXL3 小时前
Spring Security安全框架原理与实战
java·后端
前端小L3 小时前
二分查找专题(二):lower_bound 的首秀——精解「搜索插入位置」
数据结构·算法
一抓掉一大把3 小时前
秒杀-StackExchangeRedisHelper连接单例
java·开发语言·jvm