题意
最多可以做一次操作,这次操作会把数组里的任意一个元素改为任意值,求出现次数最多元素的最多出现次数
思路
要使得出现次数最多的元素出现的次数尽可能的多,首先要找到最多的出现次数,这里用哈希表维护了每个元素的出现次数,取最大值为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) }