欢迎光临散文网 会员登陆 & 注册

复盘|第307场周赛

2023-01-06 20:30 作者:UCLmsc  | 我要投稿

赢得比赛需要的最少训练时长

【贪心 + 模拟】加自己的精力和经验,补到刚好超过对手即可。

最大回文数字

【贪心】先构造左半部分,最后填充一个镜像。从9枚举到1,判断是否能填0,另判断正中间能否再填一个字符。

感染二叉树需要的总时间

【DFS + BFS】DFS求出start的位置和每个点的父节点,然后用BFS求答案。

找出数组的第 K 大和

【堆】记nums中所有非负数的和为sum。任意一个子序列的和,都等价于从sum中减去某些非负数/加上某些负数得到。将nums所有数取绝对值,这样可以统一成从sum中减去某些数。将nums所有数取绝对值后排序,然后用最大堆来按照从小到大的顺序取出sum要减去的子序列。

【二分 + 搜索】所有元素取绝对值,然后排序。二分子序列和,记作limt,统计元素和s不超过limt的子序列个数cnt。我们可以写一个简单的搜索,从小到大考虑每个numsi选或者不选,如果遇到cnt≥k-1或者s+nums[i]>limit的情况就立刻返回。用sum减去二分得到的值就是答案。


复盘|第307场周赛的评论 (共 条)

分享到微博请遵守国家法律