median of 2 sorted arrays
by hrabinowitz
JavaScript
/**
* @param {number[]} nums1
* @param {number[]} nums2
* @return {number}
*/
var findMedianSortedArrays = function(nums1, nums2) {
var combined = [];
var nEntries = nums1.length + nums2.length;
var targetIndex = Math.floor(nEntries/2);
var i1=0, i2=0;
if (nums1.length == 0) {
combined = nums2;
} else if (nums2.length == 0) {
combined = nums1;
} else {
for (var ic=0; ic<=targetIndex+1; ic++) {
if (nums1[i1]<nums2[i2]) {
combined[ic] = nums1[i1++];
} else {
combined[ic] = nums2[i2++];
}
}
}
if (nEntries%2 == 0) {
// even combined index
median = (combined[targetIndex-1] + combined[targetIndex])/2;
} else {
// odd combined index
median = combined[targetIndex];
}
return median;
};
nums1 = [1, 3]
nums2 = [2]
console.log("median of arrays is " + findMedianSortedArrays(nums1, nums2));
nums1 = [1, 2];
nums2 = [3, 4];
console.log("median of arrays is " + findMedianSortedArrays(nums1, nums2));
nums1 = [1, 2, 8];
nums2 = [2, 3, 4];
console.log("median of arrays is " + findMedianSortedArrays(nums1, nums2));
nums1 = [7];
nums2 = [];
console.log("median of arrays is " + findMedianSortedArrays(nums1, nums2));