bandiaoz
bandiaoz
全部文章
分类
题解(2)
归档
标签
去牛客网
登录
/
注册
bandiaoz的博客
全部文章
(共328篇)
题解 | #字符串距离#
解题思路 题目要求计算字符串 与 中所有长度为 的子串的距离和 字符串距离定义:对应位置字符不同的数量 解题策略: 使用滑动窗口统计当前窗口中'a'和'b'的数量 对于 中的每个字符,根据它与 中对应位置字符的不同来累加距离 当窗口移动时,更新字符计数 代码 cpp j...
2024-12-29
0
53
题解 | #魔法阵#
解题思路 判断四个点能否构成正方形的简化方法: 检查相邻边是否相等 如果四条边都相等,则可能构成正方形 解题步骤: 读取输入的坐标点 计算相邻点之间的距离平方 判断相邻边是否相等 代码 cpp java python #include <iostream>...
2024-12-29
0
30
题解 | #数字构造#
解题思路 题目要求构造一个十进制数,使得: 数位和等于给定值 相邻数位不能相同 不能包含 这个数要尽可能大 关键发现: 要使数尽可能大,应该使用尽可能大的数字 由于相邻数位不能相同,最优解应该是交替使用两个数字 9和8太大,无法构造出大多数 值,最优解应该使用1和2交替 根据 ...
2024-12-29
0
44
题解 | #数字转换机#
解题思路 题目要求将两个数字 通过按钮操作转换成目标数字 有两种操作: 红色按钮:两个数字同时加1 蓝色按钮:两个数字同时乘2 使用DFS搜索所有可能的操作序列,找到最短的有效序列 剪枝条件: 如果当前数字超过目标数字,则无效 如果当前步数超过已知最小步数,则停止搜索 如果只有一个数字...
2024-12-29
0
41
题解 | #最小排列#
解题思路 题目要求通过一次交换操作得到字典序最小的排列 解题策略: 如果存在位置 使得 ,则找到这样的最小位置 将 与 (即值 所在的位置)进行交换 如果所有位置都满足 ,则交换最后两个位置 使用辅助数组 记录每个数字的位置,方便查找 代码 cpp java pyt...
2024-12-29
0
50
题解 | #拼凑硬币#
解题思路 小Q拥有面值为 的硬币,每种面值有两个 需要计算用这些硬币拼出目标金额 的不同方案数 关键发现: 对于偶数 ,可以选择使用或不使用面值为2的硬币 对于奇数 ,只能从 的方案转移而来 使用记忆化搜索,避免重复计算 代码 cpp java python #in...
2024-12-29
0
26
题解 | #图的闭包#
解题思路 闭图的定义:对于任意两个不同的点 ,如果它们的度数之和 ,那么 和 必须相邻 解题步骤: 维护每个点的度数 对点按度数从大到小排序 检查每对点,如果它们的度数之和≥n且未相连,则需要添加边 添加边后更新相应点的度数 需要进行两次遍历,因为添加边会改变点的度数,可能产生新的需要连...
2024-12-29
0
56
题解 | #geohash编码#
解题思路 这是geohash编码的第一步:二进制编码过程 给定一个范围 内的数字 ,需要通过二分法将其转换为6位二进制编码 算法流程: 每次将区间二分,得到中点 如果目标数 大于等于 ,输出1,更新下界 如果目标数 小于 ,输出0,更新上界 重复6次得到6位二进制编码 代码 ...
2024-12-29
0
50
题解 | #硬币兑换#
解题思路 题目要求用 面值的硬币凑出目标金额 需要同时满足两个优化目标: 使用的不同面值种类尽可能多 在种类最多的情况下,使用的硬币总数尽可能多 解题策略: 从小到大遍历每种面值(除1元外) 如果剩余金额大于等于当前面值,则使用该面值 使用1元硬币补齐剩余金额 代码 cpp...
2024-12-29
0
45
题解 | #素数对#
解题思路 题目要求找出一个正整数 的所有素数对,这些素数对的和等于 需要编写一个判断素数的函数 遍历 到 的所有数字 ,判断 和 是否都是素数 如果都是素数,则找到一对素数对,计数器加1 最后输出计数器的值 代码 cpp java python #include &...
2024-12-29
0
34
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页