- 博客(51)
- 收藏
- 关注
原创 【作业】DFS算法
本文展示了一个迷宫路径搜索程序的两种实现方法:递归DFS和基于栈的DFS。程序通过二维字符数组表示迷宫,使用方向数组处理移动。递归方法实现了基本的深度优先搜索,而栈方法则尝试用显式栈模拟递归过程。能找到从起点(0,0)到终点(l-1,r-1)的最短路径步数。程序最终输出两种方法的搜索结果,其中栈方法可能需要修改。
2026-04-25 21:57:27
43
原创 【DFS】作业
两段代码都实现了基于深度优先搜索(DFS)的矩阵处理算法。第一段代码处理'O'字符矩阵,标记边界连通区域,并将未标记的'O'替换为'X'。第二段代码处理'#'字符矩阵,统计完整矩形区域(g)和不规则区域(c)的数量。两者都使用DFS遍历连通区域,但应用场景不同:前者用于矩阵填充,后者用于形状识别。核心算法都是通过DFS递归搜索相邻元素,并使用标记数组记录访问状态。
2026-04-18 21:59:07
40
原创 作业DFS算法
该代码实现了一个二分搜索结合深度优先搜索(DFS)的算法,用于在n×n的矩阵中寻找从左上角(1,1)到右下角(n,n)路径上的最大高度最小值。程序首先读取矩阵数据并设置边界为极大值,然后通过二分法确定可能的高度阈值h,用DFS验证是否存在路径上所有点高度都不超过h的路径。最终输出满足条件的最小h值,确保至少存在一条可行路径。
2026-04-11 20:41:34
33
原创 C++贪心作业
摘要:三个编程题目分别处理不同问题:T1输入n个单词,输出每个单词的最短唯一前缀;T2计算数组元素的最大可能平均值;T3找出最少需要多少个元素使它们的和不小于给定值B。每个程序都先读取输入数据,然后通过特定算法处理并输出结果。
2026-03-29 16:33:08
40
原创 【作业】 贪心算法
本文包含两个C++算法题解。T1解决士兵任务调度问题,通过贪心算法按J值降序排序,计算最优任务完成时间。T2处理雷达覆盖问题,将岛屿转换为x轴上的区间,按左端点排序后贪心选择最少的雷达位置。两个问题都使用了结构体存储数据,自定义排序函数,并采用贪心策略优化解决方案。代码展示了输入处理、排序算法和贪心选择的关键实现步骤。
2026-03-14 19:55:46
76
原创 [作业] 三次方程根的二分求解问题
摘要:本文探讨了求解三次方程实数根的数值方法。通过分析函数的极值点和单调性,将求解区间划分为三个部分,在每个单调区间内使用二分法寻找零点。文中给出了完整的C++实现代码,包括函数求值、二分法查找以及处理不同单调性情况的逻辑。特别地,当判别式小于零时(函数单调),仅需一次查找即可确定唯一实根。该算法能有效求解形如ax³+bx²+cx+d=0的三次方程的所有实数根。
2026-01-29 20:33:06
74
原创 对向指针练习
本文包含两个C++程序片段。第一个程序实现了在有序数组中查找两数之和等于目标值的双指针算法,输出下标或-1。第二个程序扩展功能,先排序数组后,通过双指针法查找三个数之和为零的组合,并去重处理。两个程序都利用了排序和双指针技术来提高查找效率,适合处理大规模数据查找问题。
2025-11-23 17:20:31
195
原创 【作业】一些C++题目
AI摘要:文章摘要包含四个算法问题的解决方案:计算卡片数值和为0的对数:使用双指针法在排序数组中找到和为0的配对,时间复杂度O(nlogn)。不相邻数字选择方案数:采用动态规划,递推公式f(n)=f(n-1)+f(n-2),类似斐波那契数列,结果取模10^9+7。书籍分类最少交换次数:将书籍重排为"00...011...1"形式,统计位置不匹配的数量,交换次数为不匹配数的一半。店铺选址最短距离:通过排序后取中位数位置作为最优中心点,偶数个店铺时取中间两点的平均值。各算法均给出C++实现代码,展现
2025-06-10 20:35:47
227
原创 【作业】最大矩形问题
AI摘要:该程序实现了一个单调递增栈算法,用于解决特定问题。程序首先读取n个节点数据(包含值和位置),初始化每个节点的结果为n。通过维护单调递增栈结构,当压入新节点时,弹出栈顶比当前节点大的元素,并记录其结果为当前节点位置。最后计算所有节点(结果位置-原位置)*节点值的最大值并输出。算法时间复杂度为O(n),主要用于处理类似寻找右边第一个更大元素的问题。
2025-06-07 21:13:44
120
原创 [作业]单调栈应用
本文实现了一个单调递减栈算法,用于解决寻找每个元素右边第一个更大元素位置的问题。程序通过自定义结构体node存储数据和位置,并使用monodownstack结构维护单调栈。每当新元素入栈时,会弹出所有小于当前元素的栈顶元素,并记录这些元素右边第一个更大元素的位置。时间复杂度为O(n),空间复杂度为O(n)。输入n个元素后,输出每个元素右侧第一个更大元素的位置(未找到则输出0)。该算法典型应用于解决Next Greater Element问题。(AI摘要)
2025-05-31 21:44:26
123
原创 Josephus 问题
有 𝑛 个人围成一个圈,依次标号 0 至 𝑛 − 1。从 0 号开始,依次 0,1,0,1,…交替报数,报到 1 的人会离开,直至圈中只剩下一个人。求最后剩下人的编号。
2024-09-07 21:34:46
273
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅