获得徽章 25
#刷题交流#
打卡第21天:《Cion 勒索病毒的最大收益》
解题思路:
题目要求在给定的01字符串中,通过替换和删除操作来最大化获得的Cion币。操作的规则包括替换连续的00和11,以及删除单个0,并且连续两次操作的编号不能具有相同的奇偶性。我们需要通过分析字符串中的模式,计算出最优的操作策略。
#刷题交流#
打卡第20天:《贪心猫的鱼干大分配》
解题思路:
题目要求根据每只猫的等级分配鱼干,确保每只猫至少得到一斤鱼干,并且等级高的猫得到的鱼干比相邻的等级低的猫多。为了满足这些条件,我们可以从左到右和从右到左分别遍历一次数组,确保每只猫的鱼干数量满足其等级要求。
#刷题交流#
打卡第19天:《二进制之和》
解题思路:
题目要求将两个二进制字符串相加,并以十进制的形式呈现结果。由于二进制字符串可能非常长,直接转换为十进制再相加会导致溢出,因此需要设计一个算法来直接处理二进制字符串的加法。核心思路是将两个二进制字符串逐位相加,处理进位,然后将结果转换为十进制形式。
#刷题交流#
打卡第18天:《优化青海湖至景点X的租车路线成本》
解题思路:题目要求从青海湖到景点X的最小燃油成本,且车辆在还车时油量至少为200L。由于油价和加油站位置的不同,需要合理规划加油策略以最小化总成本。我们可以将问题转化为一个动态规划问题,通过状态转移来计算在每个加油站的最优加油策略
#刷题交流#
打卡第17天:《a替换函数》
解题思路:题目要求将字符串中的所有小写字母 a 替换为 "%100"。这是一个典型的字符串替换问题,可以通过字符串的内置方法 replace 来实现。replace 方法会遍历整个字符串,找到所有匹配的字符并替换为指定的字符串。
#刷题交流#
打卡第16天:《大数和中的极值位距离》
解题思路:首先,我们需要将两个字符串数相加,得到一个新的字符串数。然后,我们需要找到这个新字符串数中的最大数和最小数,并计算它们之间的最小位数差距。如果所有数字都相同,则差距为0。
#刷题交流# 射击训练题解题步骤:
1.计算距离:使用欧几里得距离公式计算射击点(x, y)到靶心(0, 0)的距离。
2.确定得分:根据距离确定得分。距离在某个半径i的圆内,则得11-i分。如果距离大于10,则得0分。
#刷题交流# BytedanceTree问题关键,DFS 遍历:
在 DFS 过程中,需要记录当前路径上的礼物信息,以便判断是否可以形成一个 Special 连通分块。
动态规划:
#刷题交流#
打卡第13天:《构造回文字符串问题》
解题思路:
1.初始回文构造:将字符串 s 的前半部分复制到后半部分,构造一个初始的回文字符串 t。
2.字典序检查:比较 t 和 s 的字典序,如果 t 小于 s,则 t 即为所求。
3.字典序调整:如果 t 不小于 s,则从中间向左遍历 s 的前半部分,尝试将每个字符减小 1,直到找到一个可以减小的字符。
4.重新构造回文:找到可以减小的字符后,重新构造回文串 t。
5.边界情况处理:如果所有字符都无法减小,则返回 -1。
#刷题交流#
第十二天,最大UCC子串计算
用动态规划(DP)来解决这个问题。定义一个二维数组 dp[i][j],其中 i 表示当前字符串的长度,j 表示当前的编辑距离。dp[i][j] 表示在字符串长度为 i 且编辑距离为 j 的情况下,最多能找到多少个 "UCC" 子串。通过遍历字符串的每个字符,考虑插入、删除、替换操作,更新编辑距离,并在当前字符组合形成 "UCC" 时更新 dp 数组中的值。最终答案为 dp[len(s)][m],即在字符串长度为 len(s) 且编辑距离为 m 的情况下,最多能找到的 "UCC" 子串的数量。
#刷题交流#
打卡十二天:分组飞行器棋子 解题思路如下
1.统计每个序号的棋子数量:首先,你需要统计每个序号的棋子数量。可以使用字典(Python中的dict)来存储每个序号的棋子数量。
2.检查是否可以分组:对于每个序号,检查其数量是否是5的倍数。如果所有序号的棋子数量都是5的倍数,则可以分组;否则,不能分组。
使用AI久了,模型都知道你喜欢的代码风格了,这样的提示代码更容易理解 #刷题交流#
#刷题交流# 小E的射击训练题:
1.计算射击点到靶心的距离:使用欧几里得距离公式 distance = sqrt(x^2 + y^2)。
2.判断射击点所在的环:根据距离判断射击点在哪个环内。
3.计算得分:根据环的半径计算得分。
#刷题交流# 石子移动问题理关键:
1.连续性判断:如何判断石子位置是否已经连续。
2.移动策略:如何选择每次移动的石子,以最大化移动次数。
#刷题交流#
打卡第12天:《游戏排名第三大的分数》
解题思路:
去重:首先需要去除数组中的重复元素,因为题目要求的是第三大的不同分数。
排序:将去重后的数组进行排序,以便找到第三大的元素。
判断:如果去重后的数组长度小于3,则返回最大的元素;否则返回第三大的元素。
#刷题交流# 小R的随机播放顺序题:使用队列(Queue)来模拟歌单。队列的特点是先进先出(FIFO),非常适合用来处理这种需要按顺序移除和添加元素的场景。
#刷题交流#
第十一天,观光景点组合得分问题
通过一次遍历来优化这个问题。具体来说,我们维护一个变量 `max_i_value`,表示当前遍历到的 `i` 位置的最大 `values[i] + i` 值。在遍历到 `j` 时,我们只需要计算 `max_i_value + values[j] - j`,并更新最大得分。通过这种方式,我们将时间复杂度从 `O(n^2)` 降低到 `O(n)`,显著提高了性能。
#刷题交流# 每日一刷,今天已完成,加油,每天都要来进步一下,喜喜
#刷题交流#
打卡第十一天:叠盘子排序 解题思路如下
1.初始化变量:确保你正确初始化了所有需要的变量,例如 result 列表和 i 指针。
2.查找连续递增序列:在 while 循环中,使用一个内部 while 循环来查找连续递增的序列。确保你正确处理了边界条件。
3.判断序列长度:在找到连续递增序列后,判断其长度是否满足至少包含3个盘子的条件。
4.格式化输出:根据序列的长度,正确格式化输出。如果序列长度满足条件,使用 start-end 格式;否则,逐个列出盘子序号。
5.处理剩余的盘子:在主循环结束后,确保处理了所有剩余的盘子。
6.返回结果:将 result 列表转换为字符串并返回。
下一页