https://leetcode.cn/problems/majority-element/description/?envType=study-plan-v2&envId=top-interview-150
go
package leetcode150 import "testing" func Test(t *testing.T) { nums := []int{6, 5, 5} println(majorityElement(nums)) } func majorityElement(nums []int) int { ans := 0 count := 0 for _, num := range nums { if count == 0 { ans = num count = 1 continue } if num == ans { count++ } else { count-- } } return ans } func majorityElement2(nums []int) int { numMap := make(map[int]int) for _, num := range nums { numMap[num]++ } for k, v := range numMap { if v > len(nums)/2 { return k } } return 0 }
java
package leetcode150; public class a5_169_majorityElement { public int majorityElement(int[] nums) { int major = 0; int count = 0; for (int num : nums) { if (count == 0) { major = num; count = 1; } else if (num == major) { count++; } else { count--; } } return major; } }