标签:https ++ class one element app appear imp ntop
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
You can find the detailed video tutorial here
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.
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 }
Time Complexity: O(N) where N is the array size
Space Complexity: O(1) Consant space
References
Baozi Leetcode solution 169: Major Element
标签:https ++ class one element app appear imp ntop
原文地址:https://www.cnblogs.com/baozitraining/p/12053768.html