其他分享
首页 > 其他分享> > LeetCode-229. 求众数 II

LeetCode-229. 求众数 II

作者:互联网

给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。

示例 1:

输入:[3,2,3]
输出:[3]
示例 2:

输入:nums = [1]
输出:[1]
示例 3:

输入:[1,1,1,3,3,2,2,2]
输出:[1,2]
 

提示:

1 <= nums.length <= 5 * 104
-109 <= nums[i] <= 109
 

进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1)的算法解决此问题。

package main

import (
	"fmt"
	"hash/maphash"
)

func majorityElement(nums []int) []int {
	var Mp map[int]int
	Mp = make(map[int]int)

	var Len = len(nums)
	var result [] int
	var Big = Len / 3
	for i:=0;i<Len;i++ {
		val, ok := Mp[nums[i]]
		if ok {
			Mp[nums[i]]++
			val++
		}else{
			Mp[nums[i]] = 1
		}
	}

	for it := range Mp {
		fmt.Println(Mp[it])
		if(Mp[it] > Big){
			result = append(result, it)
		}
	}
	return result
}

标签:示例,int,nums,Len,II,result,229,var,LeetCode
来源: https://blog.csdn.net/qq_16542775/article/details/120915311