前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2024-05-08:用go语言,给定一个由正整数组成的数组 nums, 找出数组中频率最高的元素, 然后计算该元素在数组中出现

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

作者头像
福大大架构师每日一题
发布2024-05-17 13:40:34
900
发布2024-05-17 13:40:34
举报

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完整代码如下:

代码语言:javascript
复制
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完整代码如下:

代码语言:javascript
复制
# -*-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)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 福大大架构师每日一题 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 大体步骤如下:
  • Go完整代码如下:
  • Python完整代码如下:
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档