获得徽章 0
- #刷题交流# 字符串最大美度
初始化:根据 S[0] 的值初始化 dp[0][0] 和 dp[0][1]。
状态转移:从第 1 位开始,逐位计算 dp[i][0] 和 dp[i][1]。
如果 S[i] 是 0 或 1,则直接更新 dp[i][0] 和 dp[i][1]。
如果 S[i] 是 ?,则分别考虑 0 和 1 的情况,并取最大值。
结果:最终结果为 max(dp[N-1][0], dp[N-1][1])。展开评论点赞 - #刷题交流# 二进制反码转换
转换为二进制:将十进制数 N 转换为二进制字符串。
反码操作:遍历二进制字符串,将每个 1 变为 0,每个 0 变为 1。
转换回十进制:将反码后的二进制字符串转换回十进制数。评论点赞 - #刷题交流# 最短服务时间优化磁盘调度,时间管理:需要确保在处理请求时,只处理当前时间之前已经到达的请求。距离计算:每次选择请求时,需要计算磁头到每个请求的距离,并选择最小的那个。赞过评论1
- #刷题交流# 矩阵转置计算
转置矩阵:创建一个新的二维列表 b,将原矩阵 a 的元素进行转置,即 b[i][j] = a[j][i]。
计算差的绝对值:遍历矩阵 a 和 b,计算每个位置 (i, j) 上 a[i][j] 和 b[i][j] 的差的绝对值。
累加结果:将所有差的绝对值累加起来,得到最终的转置权值。展开赞过评论1 - #刷题交流# 小c的好数
遍历所有可能的数字:从1到n,逐个检查每个数字是否是“好数”。
检查数字是否为“好数”:
将数字转换为字符串,以便逐位检查。
使用集合来记录数字中出现的不同数字。
如果集合的大小不超过2,则该数字是“好数”。
计数:每找到一个“好数”,计数器加1。展开评论点赞 - #刷题交流# 外卖超时判断题,时间转换:将 t1, t2, t3 转换为分钟数。
时间比较:比较 t3 和 t2 的分钟数。
跨天处理:由于时间可能在午夜前后,需要考虑跨天的情况。例如,t2 是 "00:21",而 t3 是 "00:23",这种情况下 t3 是超时的。评论点赞 - #刷题交流# 小b的o绘制请求题目
初始化图形:创建一个 5n x 5n 的二维列表,所有元素初始化为 "."。
绘制外框:根据 n 的值,确定外框的边界,并将这些位置设置为 "*"。
绘制中间部分:根据 n 的值,确定中间部分的边界,并将这些位置设置为 "O"。
处理特殊位置:根据 n 的值,确定中间部分的特殊位置(如 "O" 和 "." 混合的部分),并将这些位置设置为 "."。
返回结果:将二维列表转换为字符串列表并返回。展开评论点赞 - #刷题交流# 补给站最优花费问题,数据结构上的选择,补给站信息:可以使用一个列表来存储补给站的信息,每个补给站包含两个信息:天数和食物价格。
动态规划数组:可以使用一个数组 dp,其中 dp[i] 表示在第 i 天结束时,小U的最小花费。评论点赞