169.go 477 B

1234567891011121314151617181920212223242526272829303132333435
  1. package main
  2. func majorityElementOld(nums []int) int {
  3. m := map[int]int{}
  4. n := int(len(nums) / 2)
  5. for _, v := range nums {
  6. m[v]++
  7. if m[v] > n {
  8. return v
  9. }
  10. }
  11. return 0
  12. }
  13. // ~ little trick
  14. func majorityElement(nums []int) int {
  15. var cnt = 0
  16. var num int
  17. for _, v := range nums {
  18. if cnt == 0 {
  19. num = v
  20. }
  21. if v == num {
  22. cnt++
  23. } else {
  24. cnt--
  25. }
  26. }
  27. return num
  28. }
  29. // func main() {
  30. // arr := []int{1, 1, 3}
  31. // fmt.Println(majorityElement(arr))
  32. // }