Skip to content

Instantly share code, notes, and snippets.

@rastadrian
Created January 27, 2021 03:06
Show Gist options
  • Save rastadrian/b228f011619c166252dffa3e5fd1838d to your computer and use it in GitHub Desktop.
Save rastadrian/b228f011619c166252dffa3e5fd1838d to your computer and use it in GitHub Desktop.
Median of Two Sorted Arrays
class Solution {
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
int[] merged = new int[nums1.length + nums2.length];
int mergedIndex = 0;
int index1 = 0;
int index2 = 0;
while (index1 < nums1.length || index2 < nums2.length) {
if (index2 < nums2.length) {
if (index1 == nums1.length) {
merged[mergedIndex] = nums2[index2];
index2++;
} else if (nums1[index1] < nums2[index2]) {
merged[mergedIndex] = nums1[index1];
index1++;
} else {
merged[mergedIndex] = nums2[index2];
index2++;
}
} else {
merged[mergedIndex] = nums1[index1];
index1++;
}
mergedIndex++;
}
boolean even = merged.length % 2 == 0;
if (even) {
return (double) (merged[(merged.length/2) -1] + merged[merged.length/2] ) / 2;
} else {
return (double) merged[(((merged.length-1) / 2) -1) + 1];
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment