本文主要是介绍Leetcode 3092. Most Frequent IDs,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- Leetcode 3092. Most Frequent IDs
- 1. 解题思路
- 2. 代码实现
- 题目链接:3092. Most Frequent IDs
1. 解题思路
这一题的话思路上比较直接的就是用一个counter来记录每一次操作时各个值的freq变化,然后用另一个有序数列来记录当前所有的freq的值即可。
然后,每一次操作时,我们都更新这个counter和这个有序数列,就能直接获得对应的最大freq结果了。
2. 代码实现
给出python代码实现如下:
class Solution:def mostFrequentIDs(self, nums: List[int], freq: List[int]) -> List[int]:cnt = defaultdict(int)scnt = [0 for _ in set(nums)]ans = []for x, f in zip(nums, freq):c = cnt[x]cnt[x] += fscnt.pop(bisect.bisect_left(scnt, c))bisect.insort(scnt, c+f)ans.append(scnt[-1])return ans
提交代码评测得到:耗时2965ms,占用内存42.7MB。
这篇关于Leetcode 3092. Most Frequent IDs的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!