2024-05-08:用 go 语言,给定一个由正整数组成的数组 nums, 找出数组中频率最高的元素, 然后计算该元素在数组中出现的总次数。 输入:nums = [1,2,2,3,1,4]。 输出:4。
2024-05-08:用 go 语言,给定一个由正整数组成的数组 nums,
找出数组中频率最高的元素,
然后计算该元素在数组中出现的总次数。
输入:nums = [1,2,2,3,1,4]。
输出:4。
答案 2024-05-08:
题目来自 leetcode3005。
大体步骤如下:
1.创建一个空的字典 cnt
用于存储每个元素的出现次数。
2.初始化 maxCnt
和 ans
为 0,分别表示当前最大的出现次数和频率最高的元素在数组中的总次数。
3.遍历数组 nums
中的每个元素 x
:
将元素
x
添加到字典cnt
中,并将其对应的值加一表示出现次数增加。获取元素
x
的出现次数c
。如果
c
大于maxCnt
,更新maxCnt
和ans
为当前的出现次数c
。如果
c
等于maxCnt
,将当前的出现次数c
加到ans
中。
4.返回变量 ans
。
总的时间复杂度:O(n),其中 n 是数组 nums
的长度,因为需要遍历整个数组。
总的额外空间复杂度:O(k),其中 k 是数组 nums
中不同元素的个数,因为需要使用字典 cnt
来存储元素的出现次数。
Go 完整代码如下:
复制代码
![](https://static001.geekbang.org/infoq/69/69864c9b6fd9376f82382466ff18b93f.png)
Python 完整代码如下:
复制代码
![](https://static001.geekbang.org/infoq/ff/ffe487185c6b7f85614c677c17ffeb74.png)
版权声明: 本文为 InfoQ 作者【福大大架构师每日一题】的原创文章。
原文链接:【http://xie.infoq.cn/article/aaa0e59ab91012109ec401e10】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论