掘友等级
获得徽章 0
#刷题交流# 分组飞行棋棋子题:判断给定的棋子序列是否可以被分成若干组,每组恰好包含5个序号相同的棋子。
#刷题交流# 优化租车线路成本问题,选择贪心策略:在每个加油站选择油价最低的加油站进行加油,以最小化总成本。
#刷题交流# 还原原始字符串问题关键点:每次操作是将字符串 S 的一部分追加到 S 的末尾。这意味着最终的字符串 F 是由初始字符串 S 通过重复某些子串得到的,如果 F 可以通过操作得到,那么 F 中必然存在一个子串 S,使得 F 是 S 的某种重复形式。
#刷题交流# 饭馆菜品选择问题的边界情况考虑:如果含有蘑菇的菜品数量小于m,则直接从含有蘑菇的菜品中选择所有菜品。
如果无法满足条件(例如,含有蘑菇的菜品数量不足m,且不含蘑菇的菜品数量也不足以补足k),则返回-1。
#刷题交流# 叠盘子排序问题:寻找连续递增序列。
记录当前连续递增序列的起始位置 start。
当发现当前元素 plates[i] 和下一个元素 plates[i+1] 不连续时,检查当前序列的长度。
如果序列长度大于等于3,将其表示为范围格式(例如 start-end)并添加到结果列表中。
如果序列长度小于3,将每个元素单独添加到结果列表中
#刷题交流# Base32 编解码:
编码:
将输入字符串转换为二进制数据。
补 0 使 bit 数目为 5 的倍数。
按 5 bit 分组,转换为索引,再转换为字符。
根据余数补 +。
解码:
将 Base32 编码字符串转换为索引。
将索引转换为 5 bit 的二进制数据。
按 8 bit 分组,转换为字符。
去除末尾的 +。
#刷题交流# 石子移动问题解题思路:
1.初始状态:首先,我们需要确定当前石子的分布情况。
2.连续性判断:计算当前石子位置的连续性。如果石子已经连续,则不需要任何移动。
3.移动策略:每次移动一个端点石子到一个未占用的位置,使其不再是端点石子。
4.移动次数计算:通过模拟移动过程,计算可以进行的最大移动次数。
#刷题交流# 继续刷题,今天又是一道dfs问题:小u的最大连续移动。从每个未访问的位置开始,进行深度优先搜索。
在DFS过程中,记录当前路径的长度,并更新最大路径长度。
每次移动时,检查是否满足上坡或下坡的条件,并交替进行。
#刷题交流# 环状DNA序列题理解:环状结构:环状 DNA 序列可以从任意位置开始读取,因此一个长度为 n 的序列可以有 n 种不同的表示方式。
字典序最小:我们需要在这些表示中找到字典序最小的那个。
#刷题交流# 计算x到y的最少步数解题思路:
1.计算距离:首先计算从 x 到 y 的绝对距离 distance = abs(y - x)。
2.步数计算:
如果 distance 为 0,则不需要移动,步数为 0。
如果 distance 为 1,则只需要一步,步数为 1。
对于其他情况,步数的计算可以通过观察步数与距离的关系来推导。
下一页