Skip to content

Commit 7db5302

Browse files
majority element
1 parent 309bf2f commit 7db5302

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package leetcode.easy;
2+
3+
import java.util.HashMap;
4+
5+
/**
6+
* https://leetcode.com/problems/majority-element/description/
7+
* <p>
8+
* Example 1:
9+
* Input: nums = [3,2,3]
10+
* Output: 3
11+
* <p>
12+
* Example 2:
13+
* Input: nums = [2,2,1,1,1,2,2]
14+
* Output: 2
15+
*/
16+
class MajorityElement {
17+
public static void main(String[] args) {
18+
19+
int[] nums1 = {3, 2, 3};
20+
System.out.println("Majority Element in [3, 2, 3]: " + majorityElement(nums1)); // Expected: 3
21+
22+
int[] nums2 = {2, 2, 1, 1, 1, 2, 2};
23+
System.out.println("Majority Element in [2, 2, 1, 1, 1, 2, 2]: " + majorityElement(nums2)); // Expected: 2
24+
}
25+
26+
public static int majorityElement(int[] nums) {
27+
HashMap<Integer, Integer> map = new HashMap<>();
28+
int n = nums.length;
29+
30+
// Populate the map with counts of each element
31+
for (int num : nums) {
32+
map.put(num, map.getOrDefault(num, 0) + 1);
33+
}
34+
35+
// Find the majority element (greater than n/2)
36+
for (int key : map.keySet()) {
37+
if (map.get(key) > n / 2) { // Fixed condition to be strictly greater
38+
return key;
39+
}
40+
}
41+
42+
// Since the problem guarantees a majority element, this line should not be reached
43+
return -1;
44+
}
45+
}

0 commit comments

Comments
 (0)