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

复盘|第74场双周赛

2022-11-02 23:30 作者:UCLmsc  | 我要投稿

将数组划分成相等数对

【哈希表】所有数字是否都是偶数频率。

【一次遍历】在遍历数组的同时判断奇偶性。

字符串中最多数目的子字符串

【贪心 + 一次遍历】设pattern[0] = a, pattern[1] = b,a插入的位置越左,答案包含的个数越多,b插入的位置越靠右,答案的个数越多。那么a应置于text最左侧,b应置于text最右侧,遍历text,每遇到一个b,就累加左边a的个数,需特判a=b的情况。代码里,放a or 放b可以一次遍历:放a在最左侧,每次b都会多算一个a,答案多cb个(c为b在text中的出现次数),放b在最右侧,b会与text所有a组成子序列,答案会多ca个(c是a在text中的出现次数)

将数组和减半的最少操作次数

【堆模拟】每次将堆顶减半,直到不低于总和的一半。

【堆模拟优化】不用浮点数——将每个数都乘2的幂次,并且原地修改。

用地毯覆盖后的最少白色砖块

【DP】定义dp[i] [j] 为用i条地毯覆盖前j块地板时,没被覆盖的白色地板的最少数目。转移状态是是否使用第i条地毯,且其末尾覆盖第j块地板。注意j < carpetLen * i 的dp[i]均为 0。

【DP】滚动数组优化压缩第一维。


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

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