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

复盘|第310场周赛

2022-10-21 20:30 作者:UCLmsc  | 我要投稿

2404. 出现最频繁的偶数元素 https://leetcode.cn/problems/most-frequent-even-element/

【哈希表】统计所有偶数数量,找出现次数最多且值最小的偶数元素。代码中,mx_c表示最多出现次数,ans记录最多出现次数的值最小的数字。

2405. 子字符串的最优划分 https://leetcode.cn/problems/optimal-partition-of-string/

【贪心 + 哈希表】从左往右遍历,没出现过就分到同一组。

【贪心 + 位运算】用一个数字,用位运算的方式记录字符,空间复杂度能降到O(1)。

2406. 将区间分为最少组数 https://leetcode.cn/problems/divide-intervals-into-minimum-number-of-groups/

【堆模拟】先按左端点排序,然后小根堆维护每个区间的右端点,然后遍历每个区间,如果当前区间的左端点大于堆顶的右端点,说明当前区间能够加入到堆顶元素所在的组,并把堆顶更新为当前区间的右端点,反之,直接加入当前的右端点,相当于新建一组。注意,sort默认的key = lambda x: x[0]故不用再写参数;除了直接heappop + heappush也可以使用heapreplace或heapppoppush。

【差分数组】看成上下车模型,每个区间看作一个人,他在left时刻上车,right+1时刻下车,最后答案为同时在车上人数的最大值。

2407. 最长递增子序列 II https://leetcode.cn/problems/longest-increasing-subsequence-ii/

【线段树】定义f[i] [j]为nums前i个元素中,以j为结尾的满足条件的子序列最长长度。nums[i] != j时,f[i] [j] = f[i - 1] [j],j = nums[i]时,f[i] [j] = 1 + max(f[i - 1] [j']),j - k ≤ j' < j。


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

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