重生之我要当分子
重生之我要当分子
全部文章
分类
题解(3)
归档
标签
去牛客网
登录
/
注册
重生之我要当分子的博客
全部文章
(共277篇)
题解 | 附加题
解题思路 这是一个动态规划问题。通过观察可以发现,到达每个房间的移动次数可以通过前面房间的状态推导。 关键点: 表示到达房间 的移动次数 状态转移方程: 初始房间 不计入移动次数,但计入访问次数 注意处理负数取模的情况 算法步骤: 读取传送门信息 动态规划计算每个房间的移动次数 处理最终...
2025-01-01
0
10
题解 | 二叉树的序列化
解题思路 这是一个二叉树序列化问题,使用括号序列表示二叉树结构。每个节点用一对括号表示,其中包含左右子树的括号序列。 关键点: 使用括号表示每个节点 递归处理左右子树 使用字符流处理字符串拼接 按照前序遍历顺序生成序列 算法步骤: 处理空节点情况 添加左括号 递归处理左右子树 添加右括号 ...
2025-01-01
0
15
题解 | 构造MaxTree
解题思路 这是一个构建最大树的问题。对于每个元素,需要找到其左边和右边第一个比它大的数,取较小值作为父节点。 关键点: 使用单调栈找左右第一个大的元素 栈中保持递减顺序 每个元素的父节点是左右第一个大的数中较小的那个 时间复杂度要求 算法步骤: 使用单调栈找左边第一个大的数 使用单调栈找右边...
2025-01-01
0
9
题解 | 双色塔
解题思路 这是一个动态规划问题。通过计算每个可能的石头数量组合来统计方案数。 关键点: 只需考虑较小值到较大值的范围 使用动态规划数组记录方案数 每层需要的石头数逐渐增加 结果需要对1000000007取模 算法步骤: 处理特殊情况(一种颜色为0) 确保 是较小值 动态规划计算每种组合的方案...
2025-01-01
0
12
题解 | 用递归函数和栈操作逆序栈
解题思路 这是一个栈的递归逆序问题。通过递归遍历和重新赋值来实现栈的逆序操作。 关键点: 使用双指针记录当前处理的位置 递归保存原始元素 回溯时重新赋值实现逆序 算法步骤: 递归遍历记录原始元素顺序 在回溯过程中重新赋值 实现栈的逆序效果 代码 cpp java python ...
2025-01-01
0
5
题解 | 队列最小修改
解题思路 这是一个序列操作问题。通过观察可以发现,从后向前看,如果序列是递增的,那么这部分不需要操作。 关键点: 从后向前看,递增序列不需要操作 遇到第一个递减位置时停止 前面的元素都需要移动到队首 算法步骤: 从后向前遍历序列 统计末尾的递增序列长度 剩余的元素数量就是最少操作次数 代码...
2025-01-01
0
16
题解 | 相邻最大差值
解题思路 这是一个求最大差值的问题。虽然可以通过排序解决,但题目要求 复杂度,因此需要使用桶排序的思想。 关键点: 最大差值一定不小于 使用 个桶可以保证最大差值一定出现在桶之间 只需要记录每个桶的最大值和最小值 算法步骤: 找出数组的最大值和最小值 创建 个桶 将数字分配到对应的桶中...
2025-01-01
0
14
题解 | 最长区间
解题思路 这是一个字符串循环移位问题,需要找到所有可能的移位中最长的连续1序列。 关键点: 将字符串复制一遍可以处理所有移位情况 使用双指针技术查找连续1序列 注意结果不能超过原字符串长度 算法步骤: 复制字符串拼接到原串后面 使用双指针遍历查找连续1 取最大长度和原串长度的较小值 代码 ...
2025-01-01
0
12
题解 | 数组Mex
解题思路 这是一个查找未出现最小正整数的问题。由于数组大小不超过500,所以最小未出现的正整数一定不会超过501。 关键点: 最小未出现正整数的范围是 可以使用原数组作为标记数组 将每个在范围内的正整数放到对应位置 算法步骤: 遍历数组,将每个在 范围内的数放到对应位置 再次遍历数组,找到...
2025-01-01
0
24
题解 | 紧急疏散
解题思路 这是一个树形动态规划问题,需要计算所有人从各个节点到达安全出口(根节点)所需的最短时间。 关键点: 每个节点同时只能容纳一个人 人只能向根节点方向移动 每秒只能移动一个节点距离 需要考虑节点阻塞的情况 算法步骤: 构建树的邻接表表示 使用 计算每个子树的疏散时间 对每个节点的子树按...
2025-01-01
0
10
首页
上一页
4
5
6
7
8
9
10
11
12
13
下一页
末页