0. 문제
https://leetcode.com/problems/majority-element/
1. 문제 설명
2. 문제 풀이
nums 오름차순 정렬
return nums[중간 인덱스]
3. 코드
class Solution {
public int majorityElement(int[] nums) {
Arrays.sort(nums);
return nums[nums.length / 2];
}
}
4. 결과
5. 개선점
Boyer-Moore 과반수 투표 알고리즘
을 사용하면 O() 시간 복잡도로 해결 가능하다. (참고)class Solution {
public int majorityElement(int[] nums) {
int count = 0;
int ans = 0;
for (int i : nums) {
if (count == 0) {
ans = i;
}
if (ans == i) count++;
else count--;
}
return ans;
}
}