
									 Problem
								
								
									 Solution
								
								
									 Submissions
								
								
							Majority Element II
								Certification: Intermediate Level
								Accuracy: 0%
								Submissions: 0
								Points: 15
							
							Write a C program to find all elements that appear more than ⌊n/3⌋ times in an array, where n is the length of the array. The algorithm should run in linear time and use only constant extra space. There can be at most 2 such elements in any array.
Example 1
- Input: nums = [3,2,3]
 - Output: [3]
 - Explanation: 
- Array length n = 3, so ⌊n/3⌋ = 1. 
 - Element 3 appears 2 times, which is > 1. 
 - Element 2 appears 1 time, which is not > 1. 
 - Therefore, only [3] appears more than ⌊n/3⌋ times.
 
 - Array length n = 3, so ⌊n/3⌋ = 1. 
 
Example 2
- Input: nums = [1]
 - Output: [1]
 - Explanation: 
- Array length n = 1, so ⌊n/3⌋ = 0. 
 - Element 1 appears 1 time, which is > 0. 
 - Therefore, [1] appears more than ⌊n/3⌋ times.
 
 - Array length n = 1, so ⌊n/3⌋ = 0. 
 
Constraints
- 1 ≤ nums.length ≤ 5 * 10^4
 - -10^9 ≤ nums[i] ≤ 10^9
 - Time Complexity: O(n)
 - Space Complexity: O(1)
 - At most 2 elements can appear more than ⌊n/3⌋ times
 
Editorial
									
												
My Submissions
										All Solutions
									| Lang | Status | Date | Code | 
|---|---|---|---|
| You do not have any submissions for this problem. | |||
| User | Lang | Status | Date | Code | 
|---|---|---|---|---|
| No submissions found. | ||||
Solution Hints
- Use Boyer-Moore Majority Vote algorithm extended for finding 2 candidates
 - Maintain two candidates and their respective counts
 - In the first pass, find potential candidates using voting mechanism
 - In the second pass, verify if candidates actually appear more than n/3 times
 - If a number matches candidate1, increment count1; if matches candidate2, increment count2
 - If neither matches and both counts > 0, decrement both counts