首页 > 试题广场 >

查找数组众数

[编程题]查找数组众数
  • 热度指数:5393 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

给定一个数组A[n], 定义数组的众数 ( Majority Element) 为数组中出现次数超过 n/2 次的元素, 假设数组A[n]非空且一定存在众数, 请设计算法找到该众数并输出.


输入描述:
一个非空且一定存在众数的整数数组,如: [1,2,2]


输出描述:
输出打印该众数,如: 2
示例1

输入

[1,2,2]

输出

2
示例2

输入

[3,1,-2,3,1,3,3]

输出

3
package main

import (
    "fmt"
    "os"
    "bufio"
    "strings"
)

var in=bufio.NewReader(os.Stdin)

func main() {
    var s string
    fmt.Fscan(in,&s)
    s=s[1:len(s)-1]
    sarr:=strings.Split(s,",")
    cnt:=map[string]int{}
    for _,s:=range sarr{
        cnt[s]++
        if cnt[s]*2>len(sarr){
            fmt.Print(s)
            break
        }
    }
}

发表于 2023-03-21 22:36:01 回复(0)