2024-05-08:用go语言,给定一个由正整数组成的数组 nums, 找出数组中频率最高的元素

2024-05-08:用go语言,给定一个由正整数组成的数组 nums,

找出数组中频率最高的元素,

然后计算该元素在数组中出现的总次数。

输入:nums = [1,2,2,3,1,4]。

输出:4。

答案2024-05-08:

chatgpt

题目来自leetcode3005。

大体步骤如下:

1.创建一个空的字典 cnt 用于存储每个元素的出现次数。

2.初始化 maxCntans 为 0,分别表示当前最大的出现次数和频率最高的元素在数组中的总次数。

3.遍历数组 nums 中的每个元素 x

  • 将元素 x 添加到字典 cnt 中,并将其对应的值加一表示出现次数增加。

  • 获取元素 x 的出现次数 c

  • 如果 c 大于 maxCnt,更新 maxCntans 为当前的出现次数 c

  • 如果 c 等于 maxCnt,将当前的出现次数 c 加到 ans 中。

4.返回变量 ans

总的时间复杂度:O(n),其中 n 是数组 nums 的长度,因为需要遍历整个数组。

总的额外空间复杂度:O(k),其中 k 是数组 nums 中不同元素的个数,因为需要使用字典 cnt 来存储元素的出现次数。

Go完整代码如下:

package main

import "fmt"

func maxFrequencyElements(nums []int) (ans int) {
    maxCnt := 0
    cnt := map[int]int{}
    for _, x := range nums {
        cnt[x]++
        c := cnt[x]
        if c > maxCnt {
            maxCnt = c
            ans = c
        } else if c == maxCnt {
            ans += c
        }
    }
    return
}

func main() {
    nums := []int{1, 2, 2, 3, 1, 4}
    ans := maxFrequencyElements(nums)
    fmt.Println(ans)
}

在这里插入图片描述

Python完整代码如下:

# -*-coding:utf-8-*-

def max_frequency_elements(nums):
    max_cnt = 0
    cnt = {}
    ans = 0
    for x in nums:
        cnt[x] = cnt.get(x, 0) + 1
        c = cnt[x]
        if c > max_cnt:
            max_cnt = c
            ans = c
        elif c == max_cnt:
            ans += c
    return ans

nums = [1, 2, 2, 3, 1, 4]
ans = max_frequency_elements(nums)
print(ans)

在这里插入图片描述

本作品采用《CC 协议》,转载必须注明作者和本文链接
微信公众号:福大大架构师每日一题。最新面试题,涉及golang,rust,mysql,redis,云原生,算法,分布式,网络,操作系统。
讨论数量: 3

没搞懂为什么是4

1周前 评论
renxiaotu 1周前

func mostFrequentCount(nums []int) int { // 创建一个字典来存储每个元素的频率 frequency := make(map[int]int)

// 统计每个元素出现的频率
for _, num := range nums {
    frequency[num]++
}

// 找到频率最高的元素及其频率
maxFreq := 0
for _, freq := range frequency {
    if freq > maxFreq {
        maxFreq = freq
    }
}

// 计算频率最高的元素在数组中的总出现次数
totalCount := 0
for _, freq := range frequency {
    if freq == maxFreq {
        totalCount += freq
    }
}

return totalCount

}

1周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
477
粉丝
23
喜欢
37
收藏
22
排名:454
访问:2.0 万
私信
所有博文
社区赞助商