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

复盘|第285场周赛

2022-11-04 22:30 作者:UCLmsc  | 我要投稿

统计数组中峰和谷的数量

【两次遍历】先对nums手动去重,然后遍历 满足波峰和波谷条件的 nums[i]个数。

【一次遍历】找到每个连续段的首尾,然后按照题目要求比较大小(两侧均小或者两侧均大),注意 i 和外层循环的 i 是同一个变量,因此时间复杂度为 O(n)。

统计道路上的碰撞次数

【思维题】去掉往左右两边开的车之后,剩下非停止的车必然会碰撞。

射箭比赛中的最大得分

【二进制枚举】枚举bob在哪些区域上获胜,一共有2^12种不同的情况,bob每个区域比alice多用一支箭即可。n位二进制整数mask表示所有区域的胜负,第i是0表示bob输,为1 是赢。如果稳赢随便找个地方射完剩下的箭。

由单个字符重复的最长子字符串

【线段树】线段树的每个节点维护对应区间的:前缀最长连续字符个数pre,后缀最长连续字符个数suf,该区间最长连续字符个数max,合并两个子区间时,如果前一个区间(记作α)的末尾字符等于后一个区间(记作b)的第一个字符,则可以合并这两个区间:如果a的suf等于a的长度,那么就可以把b的pre加到a的pre上,如果b的pre等于b的长度,那么就可以把a的su时加到b的suf上,a.suf+b.pre可以考虑成为合并后的区间的max。


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

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