题意
最多可以做一次操作,这次操作会把数组里的任意一个元素改为任意值,求出现次数最多元素的最多出现次数
思路
要使得出现次数最多的元素出现的次数尽可能的多,首先要找到最多的出现次数,这里用哈希表维护了每个元素的出现次数,取最大值为ans
最后判断如果ans不等于n的话,说明可以做一次操作使得某个元素变为该值,出现次数+1
Go代码
package main
import (
"fmt"
)
func max(a,b int) int {
if a > b {
return a
}
return b
}
func main() {
var n int
fmt.Scan(&n)
a := make([]int,n)
mp := make(map[int]int,n)
ans := 1
for i := 0; i < n; i ++ {
fmt.Scan(&a[i])
mp[a[i]]++
ans = max(ans,mp[a[i]])
}
if ans != n {
ans ++
}
fmt.Print(ans)
}

京公网安备 11010502036488号