[참고문제] : https://leetcode.com/problems/median-of-two-sorted-arrays/
Median of Two Sorted Arrays - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
문제 풀이
생각의 흐름 - 이미 정렬되어 있다.
이미 정렬이 되어 있으니, 각각의 배열에서 계속 더 작은 수를 확인한다.
생각의 흐름 - 중앙값 까지만 확인해도 된다.
어짜피 필요한 건 중앙값이고, 중앙값까지만 확인하면 계산할 수 있다.
생각의 흐름 - 한쪽만 완료될 수 있다.
작은 수가 한쪽에만 있을 수도 있다.
이미 끝의 인덱스까지 확인했으면 다른 한 쪽만 확인하자.
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
int n = nums1.length;
int m = nums2.length;
int len = n + m;
int nIndex = 0;
int mIndex = 0;
double result = 0.0;
List<Integer> arr = new ArrayList<>();
while(nIndex <= n && mIndex <= m) {
if(nIndex + mIndex == (len / 2) + 1) {
if(len % 2 == 0) {
result = (arr.get((len / 2) - 1) + (double)arr.get((len / 2))) / 2;
} else {
result = arr.get((len / 2));
}
break;
} else {
if(nIndex != n && mIndex == m) {
arr.add(nums1[nIndex]);
nIndex ++;
}
else if(nIndex == n && mIndex != m) {
arr.add(nums2[mIndex]);
mIndex ++;
} else {
if(nums1[nIndex] <= nums2[mIndex]) {
arr.add(nums1[nIndex]);
nIndex ++;
} else {
arr.add(nums2[mIndex]);
mIndex ++;
}
}
}
}
return result;
}
'Algorithm' 카테고리의 다른 글
[java] Container With Most Water (0) | 2022.07.02 |
---|---|
[java] Rotate Array (0) | 2022.06.24 |
[java] Longest Substring Without Repeating Characters (0) | 2022.06.23 |
[java] jump game 2 (0) | 2022.06.22 |
[Python / C++] 스택 수열 (0) | 2019.05.23 |