按照类型:蓝桥杯真题、洛谷题单、力扣题单汇总

本文精选了各类算法题目,包括但不限于罗马数字转换、数组操作、字符串处理、动态规划、贪心算法等多个方面,覆盖了从基础知识到高级技巧的内容,旨在帮助读者深入理解并掌握算法设计与实现。

数组操作

2022.02.14罗马数字转整数

2022.02.14整数转罗马数字

2021.05.14O(n)时间+O(1)空间求数组中的重复数据

2021.03.28压缩算法

模拟

2022.03.05时间复杂度

2021.01.29小型计算器

2022.02.20多项式输出

2021.06.02会解方程的计算器

2021.06.02旅行家的预算

暴力题

2020.12.28暴力三阶幻方

2021.03.01油漆面积

2021.04.01取扑克牌

2021.04.01手链样式

2021.04.30递归全排列求解四阶幻方

搜索

2022.03.0砝码的最大重量

2021.02.25分教室

2021.04.06矩阵中的路径

2021.04.13找绿洲

2021.05.04二进制手表

2021.05.06二维矩阵接雨水

2021.05.11最小基因变化步数

2021.05.13字典序第k小数字

2021.06.01单词接龙

2021.06.02乘积最大

递归和分治

2022.02.17删除链表的倒数第N个节点

2021.04.29删点成林

2021.04.30DFS求好叶子节点对数量

2022.02.27幂次方

2022.02.11寻找两个正序数组的中位数

2021.05.04移掉k个数字求最小数字

贪心

2021.05.20最少数量的箭引爆气球

2021.05.06根据身高重建队列

排序

2022.03.06快速排序栈溢出

2021.05.15按照字符出现的频率排序

双指针和窗口

2022.02.14双指针-盛最多水的容器

2022.02.17双指针解最接近的三数之和

2021.04.14三数之和(双指针)

2020.12.26框子求循环数组的m个最大和

2021.05.11滑动窗口求最长重复子串

单调栈

2021.03.25柱状图中最大矩形

2021.05.22单调栈解决132模式

动态规划

2020.12.29未名湖的烦恼

2021.01.25包子凑数

2021.02.06不重叠线段

2021.02.25对局匹配

2021.03.03生命之树

2021.03.18编辑距离

2021.05.03播放列表的数量

2021.05.05青蛙过河

2021.05.06分隔数组的最大值

2021.05.11无重叠区间

2021.05.11再看未名湖畔的烦恼

2021.05.19等差数列划分

2021.05.25数字三角形

2022.03.02最大正方形

2022.03.13守望者的逃离

2022.03.14摆花

2022.03.14乌龟棋

2021.06.03合并石子+能量项链

2021.06.02两次矩阵取数+传纸条

2021.06.03加分二叉树

2021.06.03邮票面值设计

2022.02.13正则表达式匹配

2022.03.21飞扬的小鸟

2022.03.25再看数字三角形

2022.03.07激光炸弹

差分与前缀和

2022.03.07地毯

2021.05.22最小操作次数使数组元素相同

2021.01.26k倍区间

二分

2022.02.21跳石头(二分法)

2022.02.21一元三次方程求解

2022.02.27刺杀大使

其他

2022.03.23 成绩统计

2020.03.23绝世武功

2022.03.23蓝桥侦探

2021.06.02税收和补贴问题

2021.05.12寻找右区间

2021.05.12找到字符中所有目标子串的字母异位词

2021.06.04麦森数

### 蓝桥杯 C++ LeetCode 练习 为了帮助小白更好地准备蓝桥杯竞赛并利用LeetCode平台进行训练,以下是针对C++编程的一些建议和推荐的。 #### 基础语法与STL库 熟练掌握C++的基础语法是非常重要的。相较于C语言,C++提供了标准模板库(STL),这使得许多操作更加简便高效[^1]。因此,在日常练习中应注重以下几个方面: - **容器**:熟悉`vector`, `deque`, `list`, `set`, 和`map`等常用数据结构。 - **算法**:了解常用的STL算法函数如`sort()`, `binary_search()`, `find()`等。 对于不使用C++的同学,则需自行实现这些功能来达到相同的效果。 #### 推荐LeetCode目列表 通过解决一些经典的LeetCode可以有效提升解能力。这里列举几个适合初学者尝试的经典目: 1. **翻转二叉树** 这是一个非常经典的数据结构操作案例。下面给出一段基于递归方法完成该任务的C++代码示例[^2]: ```cpp class Solution { public: TreeNode* invertTree(TreeNode* root) { if (!root) return nullptr; swap(root->left, root->right); invertTree(root->left); invertTree(root->right); return root; } }; ``` 2. **爬楼梯** 此问是动态规划入门级的好例子之一。它探讨如何计算到达第n阶台阶的不同方式数量。 下面展示了一个简的解决方案: ```cpp int climbStairs(int n) { if(n<=2)return n; vector<int> dp(n+1); dp[0]=0;dp[1]=1;dp[2]=2; for(int i=3;i<=n;i++) { dp[i] = dp[i-1]+dp[i-2]; } return dp[n]; } ``` 以上两道目均来源于力扣网站,并附有详细的解析过程供参考学习。 #### 学习路径指南 柳若在其文档《解锁算法之门》里提供了一份详尽的学习路线图以及刷策略建议给想要参加PAT、蓝桥杯或者LeetCode比赛的学生们作为指导材料[^3]。这份资料不仅包含了理论知识讲解还涵盖了大量实战演练的机会,非常适合用来制定个人复习计划。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值