获得徽章 0
- #刷题交流# 最优化存储方案
排序:将所有会员的存储成本按从大到小的顺序排序。
初始化:初始化一个变量来记录当前的存储容器大小。
遍历:从排序后的列表中依次取出会员的存储成本:
如果当前会员是第一个或最后一个(即可以压缩),则将其存储成本减半后加入总存储容器大小。
否则,直接将其存储成本加入总存储容器大小。
返回结果:将最终的存储容器大小保留一位小数并返回。展开评论点赞 - #刷题交流# 旋转串匹配
生成所有可能的旋转串:
对于每个字符串 s,将其自身拼接成 s + s。
这样,s + s 包含了 s 的所有旋转串。
检查旋转串:
遍历字符串集合中的每个字符串 s,生成其所有旋转串。
将这些旋转串存储在一个集合中。
如果集合中已经存在某个旋转串,说明存在两个字符串互为旋转串。展开评论点赞 - #刷题交流# 平衡串转换
统计字符数量:遍历字符串,统计 a、b、c 的数量。
计算目标数量:设 a 的数量为 count_a,b 的数量为 count_b,c 的数量为 count_c。目标是将 count_a 调整为 (count_b + count_c)。
计算操作次数:
如果 count_a 大于 (count_b + count_c),我们需要将多余的 a 转换为 b 或 c。
如果 count_a 小于 (count_b + count_c),我们需要将多余的 b 或 c 转换为 a。
返回最少操作次数。展开评论点赞 - #刷题交流# 量化数字的统计
遍历数字:使用一个循环从 L 到 R。
检查是否能被 3 整除:使用取模运算 % 检查。
检查所有位数是否相同:将数字转换为字符串,检查字符串的所有字符是否相同。评论点赞 - #刷题交流# 括号匹配策略
初始化一个栈,用于存储左括号。
遍历字符串中的每一个字符:
如果是左括号,将其压入栈中。
如果是右括号,检查栈顶的左括号是否与之匹配:
如果匹配,弹出栈顶元素。
如果不匹配,记录一次修改,并继续遍历。
遍历结束后,栈中剩余的左括号也需要匹配,记录这些修改次数。
返回总的修改次数。展开评论点赞 - #刷题交流# 最大战力问题
初始化:将 power[0] 初始化为 0。
遍历角色:从编号 1 开始,逐步计算每个角色的战力值。
计算战力值:
对于每个角色 i,其战力值 power[i] 应该满足 power[i-1] - 1 <= power[i] <= power[i-1] + 1。
如果有最大战力值限制 maxPower,则 power[i] 不能超过 maxPower。
更新战力值:根据上述规则和限制,更新每个角色的战力值。
返回结果:最终,单个角色能达到的最大战力值就是数组 power 中的最大值。展开评论点赞 - #刷题交流# 二进制字符串单调递增问题
初始化两个变量 flip_to_zero 和 flip_to_one 为 0。
遍历字符串 s,对于每个字符:
如果当前字符是 1,增加 flip_to_zero 的计数(因为我们需要将这个 1 翻转为 0 以保持单调递增)。
如果当前字符是 0,增加 flip_to_one 的计数(因为我们需要将这个 0 翻转为 1 以保持单调递增)。
在遍历过程中,记录最小的翻转次数,即 min(flip_to_zero, flip_to_one)。展开评论点赞 - #刷题交流# 优惠价格计算
初始化:创建一个栈和一个变量来存储总优惠。
遍历价格数组:
对于每个商品价格,检查栈顶元素是否小于等于当前价格。
如果栈顶元素小于等于当前价格,则将栈顶元素(即优惠价格)累加到总优惠中,并将栈顶元素弹出。
重复上述步骤,直到栈为空或栈顶元素大于当前价格。
将当前价格压入栈中。
返回总优惠。展开评论点赞 - #刷题交流# 病毒在封闭空间的传播时间
初始化:
将初始感染者的位置加入队列,并记录当前时间为 0。
使用一个二维数组 time 来记录每个座位被感染的时间。
广度优先搜索(BFS):
从队列中取出当前位置,检查其相邻的四个方向(上、下、左、右)。
对于每个相邻位置:
如果该位置未被感染且未超出边界:
如果该位置的人未戴口罩(座位值为 1),直接感染并记录时间为当前时间 + 1。
如果该位置的人戴口罩(座位值为 0),检查是否满足两秒感染条件(即是否在当前时间 + 1 秒内有两个相邻的感染者),如果满足则感染并记录时间为当前时间 + 2,否则不感染。
将新感染的位置加入队列。
终止条件:
当队列为空时,表示所有可能被感染的位置都已被处理。
结果:
返回 time 数组中的最大值,即为病毒感染所有人的最短时间。展开评论点赞 - #刷题交流# 升级和奖励最大化
初始化:
创建一个列表来存储每个英雄的当前能力值,初始值均为1。
升级操作:
需要找到一种策略,使得在 k 次升级操作内,尽可能多地达到目标值并获得奖励。
可以考虑使用贪心算法或动态规划来解决这个问题。
计算奖励:
在每次升级操作后,检查是否有英雄的能力值达到或超过目标值,并记录获得的奖励。展开评论点赞