⭐算法OJ⭐经典题目分类索引(持续更新)
在编程竞赛和算法学习中,Online Judge(OJ)平台是程序员们磨练技能的重要工具。OJ平台上的题目种类繁多,涵盖了从基础数据结构到复杂算法的各个方面。为了更好地理解和掌握这些题目,对其进行分类是非常有必要的。这篇索引文章会持续更新,欢迎大家点赞收藏!
1. 基础数据结构类题目
基础数据结构是算法设计的基石,考察对数据结构的理解和基本操作能力,常见的题目类型包括:
-
数组和字符串:如查找、排序、子数组问题等。
-
链表:如反转链表、检测环、合并链表等。
⭐算法OJ⭐链表的反转(C++/JavaScript 实现)
⭐算法OJ⭐链表相交(C++/JavaScript 实现)
⭐算法OJ⭐找到链表的中间节点【快慢指针】(C++实现)Middle of the Linked List
⭐算法OJ⭐链表排序【归并排序】(C++/JavaScript 实现) -
栈和队列:如括号匹配、滑动窗口最大值等。
⭐算法OJ⭐用两个队列实现栈(C++/JavaScript 实现) -
树和图:如二叉树的遍历、最短路径问题等。
题目 3216 ⭐团建⭐【DFS】蓝桥杯2024年第十五届省赛
⭐算法OJ⭐跳跃游戏【BFS+滑动窗口】(C++实现)Jump Game 系列 III,VII
2. 算法策略类题目
算法策略类题目主要考察对经典算法的掌握和应用,需要较强的逻辑思维和问题分解能力,常见的题目类型包括:
-
贪心算法:如活动选择问题、背包问题等。
⭐算法OJ⭐最佳买卖股票时机【贪心算法 + 动态规划】(C++实现)Best Time to Buy and Sell Stock 系列 I,II,III,IV
⭐算法OJ⭐跳跃游戏【贪心算法】(C++实现)Jump Game 系列 I,II -
动态规划:如最长公共子序列、0-1背包问题等。
⭐算法OJ⭐编辑距离的实现及其应用【动态规划 DP】(C++实现)
⭐算法OJ⭐字符串与数组【动态规划 DP】(C++实现)最长公共子序列 LCS + 最短公共超序列 SCS
⭐算法OJ⭐矩阵的相关操作【动态规划 + 组合数学】(C++ 实现)Unique Paths 系列
⭐算法OJ⭐正则表达式匹配【动态规划 DP】(C++实现)
⭐算法OJ⭐跳跃游戏【动态规划 + 单调队列】(C++实现)Jump Game 系列 VI
⭐算法OJ⭐跳跃游戏【动态规划】(C++实现)Jump Game 系列 V
⭐算法OJ⭐最佳买卖股票时机【贪心算法 + 动态规划】(C++实现)Best Time to Buy and Sell Stock 系列 I,II,III,IV
⭐算法OJ⭐最佳买卖股票时机(含“冷却期”或“交易费”)【动态规划 + 滚动窗口】(C++实现)Best Time to Buy and Sell Stock 系列 -
分治法:如归并排序、快速排序等。
⭐算法OJ⭐二分查找(C++/JavaScript 实现)
题目 3217 ⭐成绩统计⭐【滑动窗口 + 二分搜索】蓝桥杯2024年第十五届省赛
⭐算法OJ⭐荷兰国旗问题【三指针法】(C++实现) -
回溯法:如八皇后问题、数独求解等。
⭐算法OJ⭐N-皇后问题【回溯剪枝】(C++实现)N-Queens
⭐算法OJ⭐N-皇后问题 II【回溯剪枝】(C++实现)N-Queens II
⭐算法OJ⭐全排列【回溯】(C++实现)Permutations
⭐算法OJ⭐全排列【回溯】(C++实现)Permutations II
⭐算法OJ⭐矩阵的相关操作【深度优先搜索 DFS + 回溯】(C++ 实现)Unique Paths 系列
3. 数学与逻辑类题目
数学与逻辑类题目主要考察数学知识和逻辑推理能力,常见的题目类型包括:
-
数论:如素数判定、最大公约数等。
题目 3218 ⭐零食采购⭐【数理基础】蓝桥杯2024年第十五届省赛
题目 3220 ⭐因数计数⭐【数理基础】蓝桥杯2024年第十五届省赛 -
组合数学:如排列组合、鸽巢原理等。
⭐算法OJ⭐下一个排列(C++/JavaScript 实现)
题目 3215 ⭐训练士兵⭐【组合优化】蓝桥杯2024年第十五届省赛 -
几何:如矩阵操作、点线面关系、凸包问题等。
⭐算法OJ⭐矩阵的相关操作(C++ 实现)Rotate Image 旋转矩阵 -
位操作
⭐算法OJ⭐位操作【用法总结+实战指南】(C++实现)
⭐算法OJ⭐位操作实战(C++ 实现)Reverse Bits | Missing Number | Counting Bits
⭐算法OJ⭐位操作实战【计数】(C++ 实现)
4. 高级数据结构与算法类题目
高级数据结构与算法类题目主要考察对复杂数据结构和算法的理解和应用,需要深入理解数据结构和算法的原理,常见的题目类型包括:
-
高级树结构:如AVL树、红黑树、线段树等。
-
图算法:如最小生成树、网络流、强连通分量等。
-
字符串算法:如KMP算法、后缀数组等。