Baozi Leetcode solution 169: Major Element

Posted baozitraining

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Baozi Leetcode solution 169: Major Element相关的知识,希望对你有一定的参考价值。

Problem Statement 

Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.

You may assume that the array is non-empty and the majority element always exist in the array.

Example 1:

Input: [3,2,3]
Output: 3

Example 2:

Input: [2,2,1,1,1,2,2]
Output: 2

 Problem link

Video Tutorial

You can find the detailed video tutorial here

Thought Process

Simple but great question that can be solved in many ways, the voting one approves to be the most time and space efficient solution. 

 

You can refer to Leetcode official solution for a detailed explanation.

Solutions

 

 1 public int majorityElement(int[] num) {
 2     int vote = 0;
 3     int res = 0;
 4 
 5     for (int i = 0; i < num.length; i++) {
 6         if (vote == 0) {
 7             res = num[i];
 8             vote++;
 9         } else {
10             if (num[i] == res) {
11                 vote++;
12             } else {
13                 vote--;
14             }
15         }
16     }
17 
18     return res;
19 }
20 
21 public int majorityElementOptimized(int[] num) {
22     int vote = 0;
23     int majorityElement = 0;
24 
25     for (int i = 0; i < num.length; i++) {
26         if (vote == 0) {
27             majorityElement = num[i];
28         }
29         vote += num[i] == majorityElement ? 1 : -1;
30     }
31 
32     return majorityElement;
33 }

 

Voting implementation

Time Complexity: O(N) where N is the array size

Space Complexity: O(1) Consant space

 

References

以上是关于Baozi Leetcode solution 169: Major Element的主要内容,如果未能解决你的问题,请参考以下文章

Baozi Leetcode solution 229: Major Element II

Baozi Leetcode solution 169: Major Element

Baozi Leetcode solution 72. Edit Distance

Baozi Leetcode solution 201: Bitwise AND of Numbers Range

Baozi Leetcode solution 1292. Maximum Side Length of a Square with Sum Less than or Equal to Th

LeetCode Solution-73