获得徽章 0
- #刷题交流# 最优化存储方案
对存储成本列表 a 进行降序排序。
初始化总成本为0。
遍历排序后的列表:
如果当前元素是第一个或最后一个(即两端),将其成本压缩为 a_i/2 并累加到总成本中。
否则,直接累加到总成本中。
返回总成本,保留一位小数。展开评论点赞 - #刷题交流# 字符串变换问题
遍历所有可能的 x 和 y 组合:因为 x * y = n,所以我们可以遍历所有可能的 x 和 y 组合。
构建矩阵:对于每一个 x 和 y 的组合,将字符串 s 转换为一个 x 行 y 列的矩阵。
计算连通块数量:使用 DFS 或 BFS 遍历矩阵,计算连通块的数量。
记录最小连通块数量:在所有可能的 x 和 y 组合中,记录最小的连通块数量。展开评论点赞 - #刷题交流# 对书籍评分列表 books 进行降序排序。
初始化一个变量 total_happiness 用于累加快乐时间。
遍历排序后的书籍列表,计算每本书的快乐时间系数并累加到 total_happiness 中。评论点赞 - #刷题交流# 对于每个 arr[i],将 binary_string 中的第 arr[i] 位设置为 1。
使用滑动窗口检查当前的 binary_string 是否存在长度为 m 的连续 1 的子串。
如果存在,记录当前的步骤编号 i。评论点赞 - #刷题交流# 找到所有满足倍数关系的子集。可以利用动态规划的思想,从大到小遍历每个元素,计算以该元素为最小值的子集数量。
解题步骤:
1.初始化计数数组、计算幂次数组
2.构建动态规划数组
3.从大到小遍历元素、计算子集数量评论点赞 - #刷题交流# .补齐长度:首先,确保两个二进制字符串的长度相同。如果长度不同,可以在较短的字符串前面补零。
逐位相加:从最低位(字符串的最后一位)开始,逐位相加,并处理进位。
处理进位:如果某一位的和大于等于2,则需要进位。评论点赞 - #刷题交流# 区间排列的数量
初始化两个指针 left 和 right 都指向数组的起始位置。
使用一个集合 current_set 来记录当前区间内出现的数字。
逐步移动 right 指针,将 a[right] 加入 current_set,并检查 current_set 是否包含从 1 到 right-left+1 的所有整数。
如果 current_set 满足条件,则记录这个区间,并尝试移动 left 指针来寻找更小的区间。
如果 current_set 不满足条件,继续移动 right 指针展开评论点赞 - #刷题交流# 糖果传递游戏
对于每个糖果,从第一个小朋友开始分配。
检查当前小朋友的糖果数量是否小于或等于他右边的小朋友。
如果是,则当前小朋友保留这个糖果,current_index 增加 1。
如果不是,则将糖果传递给下一个小朋友,current_index 保持不变。
如果 current_index 达到 n,则糖果传递给小U。展开评论点赞 - #刷题交流# 字符串密码
遍历字符串:我要遍历加密后的字符串 S' 中的每一个字符。
计算原始字符:对于每个字符,要计算其在字母表中向前移动三个位置后的字符。
如果当前字符是 'a' 到 'w' 之间的字母,直接向前移动三个位置即可。
如果当前字符是 'x' 到 'z' 之间的字母,需要考虑字母表的循环特性,即 'x' 的三重前驱是 'u','y' 的三重前驱是 'v','z' 的三重前驱是 'w'。
构建结果字符串:将每个解密后的字符拼接起来,形成最终的原始字符串 S。展开评论点赞