forked from onlybooks/java-algorithm-interview
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathP89_2.java
More file actions
27 lines (23 loc) · 795 Bytes
/
P89_2.java
File metadata and controls
27 lines (23 loc) · 795 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package ch22;
public class P89_2 {
public int majorityElement(int left, int right, int[] nums) {
// 최소 분할 단위 리턴
if (left == right)
return nums[left];
// 중앙 위치 인덱스 계산
int mid = left + (right - left) / 2;
int a = majorityElement(left, mid, nums);
int b = majorityElement(mid + 1, right, nums);
int countA = 0;
// 해당 구간의 a 개수 계산
for (int i = left; i <= right; i++) {
if (nums[i] == a)
countA++;
}
// a가 과반수를 넘으면 a 리턴
return countA > (right - left + 1) / 2 ? a : b;
}
public int majorityElement(int[] nums) {
return majorityElement(0, nums.length - 1, nums);
}
}