You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
958 B
48 lines
958 B
3 years ago
|
/**
|
||
|
* @param {number[]} nums1
|
||
|
* @param {number[]} nums2
|
||
|
* @return {number}
|
||
|
*/
|
||
|
var findMedianSortedArrays = function(nums1, nums2) {
|
||
|
|
||
|
var merged = mergeSortedArrays(nums1, nums2);
|
||
|
var median = 0;
|
||
|
|
||
|
if (merged.length % 2 === 0){
|
||
|
var index1 = Math.floor( (merged.length-1) / 2);
|
||
|
var index2 = index1 + 1;
|
||
|
median = ( (merged[index1] + merged[index2]) / 2);
|
||
|
} else {
|
||
|
var index = Math.floor( (merged.length) / 2);
|
||
|
median = merged[index];
|
||
|
}
|
||
|
|
||
|
return median;
|
||
|
|
||
|
};
|
||
|
|
||
|
function mergeSortedArrays(sorted1, sorted2){
|
||
|
|
||
|
var merged = [];
|
||
|
|
||
|
while(sorted1.length > 0 || sorted2.length > 0){
|
||
|
if (sorted1.length === 0){
|
||
|
merged.push(sorted2.shift());
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
if (sorted2.length === 0){
|
||
|
merged.push(sorted1.shift());
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
if (sorted1[0] > sorted2[0]){
|
||
|
merged.push(sorted2.shift());
|
||
|
} else {
|
||
|
merged.push(sorted1.shift());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return merged;
|
||
|
}
|