- 博客(1469)
- 收藏
- 关注
原创 (每日一题)kotori和抽卡(⼆)———<概率-数学期望>
题目摘要:Kotori抽卡概率计算问题。给定n次抽卡机会,要求恰好抽中m次的概率。解法使用组合概率公式:C(n,m)(0.8)^m(0.2)^(n-m)。代码实现通过循环计算组合数,并乘以成功/失败概率的幂次,最后输出保留4位小数的结果。提供C++和Java两种实现,核心算法相同,均采用连乘/连除计算组合数,再乘以相应概率。时间复杂度O(n),适用于小规模数据。
2025-05-29 14:26:02
115
原创 (每日一题)小红的子串———<前缀和+双指针>
摘要:本文介绍了解决"小红的子串"问题的算法。题目要求计算字符串中字符种类在[l,r]范围内的子串数量。采用前缀和思想,将问题转换为求[1,r]与[1,l-1]区间子串数的差值。算法使用滑动窗口技术:维护一个窗口统计字符种类,当种类超过x时移动左指针,并累加有效子串数(右-左+1)。C++和Java实现均通过find(x)函数计算[1,x]范围的子串数,最终输出find(r)-find(l-1)的结果。时间复杂度为O(n),空间复杂度O(1)。
2025-05-28 14:34:01
258
原创 (每日一题)兑换零钱———<动态规划-完全背包>
题目“DP44兑换零钱”是一个典型的完全背包问题,旨在通过给定的硬币面额组合出目标金额,并找出所需的最少硬币数。解法采用动态规划,通过构建一个dp数组来记录达到每个金额所需的最小硬币数。初始时,dp[0]设为0,表示金额为0时不需要硬币,其他位置初始化为一个极大值。然后,遍历每个硬币面额,更新dp数组,确保每个金额都能通过最少的硬币组合得到。最终,如果目标金额无法通过给定硬币组合得到,则返回-1,否则返回所需的最小硬币数。代码提供了C++和Java两种实现,均遵循上述思路。
2025-05-21 14:26:08
202
原创 (每日一题)最大差值———<模拟+贪心>
题目MT1最大差值要求找出数组中两个元素之间的最大差值,其中第二个元素必须位于第一个元素之后。解法通过遍历数组,使用一个变量记录当前位置之前的最小值,并计算当前元素与最小值的差值,更新最大差值。C++和Java的代码实现类似,核心思路是维护一个最小值变量,并在遍历过程中不断更新最大差值。最终返回最大差值,若为负则返回0。
2025-05-14 14:33:45
153
原创 (每日一题)过桥———<BFS>
题目“过桥”描述了一个需要通过桥的问题,解法采用了类似层序遍历的算法思路。C++和Java的代码实现均通过广度优先搜索(BFS)来解决问题。算法核心在于记录每一轮能够到达的最远点,并不断更新搜索区间,直到能够到达终点或确定无法到达。C++代码使用数组存储数据,并通过循环更新区间;Java代码则通过Scanner读取输入,并利用Math.max函数更新最远点。两种实现均返回达到终点所需的最少步数,若无法到达则返回-1。
2025-05-13 14:31:50
167
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人