45 lines
866 B
TypeScript
45 lines
866 B
TypeScript
// @leet start
|
|
function findMedianSortedArrays(nums1: number[], nums2: number[]): number {
|
|
const merged: number[] = [];
|
|
|
|
let aIndex = 0;
|
|
let bIndex = 0;
|
|
while (true) {
|
|
const a = nums1[aIndex];
|
|
const b = nums2[bIndex];
|
|
|
|
if (a === undefined && b === undefined) {
|
|
break;
|
|
}
|
|
if (a === undefined && b !== undefined) {
|
|
merged.push(b);
|
|
bIndex++;
|
|
}
|
|
if (a !== undefined && b === undefined) {
|
|
merged.push(a);
|
|
aIndex++;
|
|
}
|
|
if (a !== undefined && b !== undefined) {
|
|
if (a <= b) {
|
|
merged.push(a);
|
|
aIndex++;
|
|
} else {
|
|
merged.push(b);
|
|
bIndex++;
|
|
}
|
|
}
|
|
}
|
|
|
|
let median: number;
|
|
if (merged.length % 2 === 0) {
|
|
const left = Math.floor((merged.length - 1) / 2);
|
|
const right = left + 1;
|
|
median = (merged[left] + merged[right]) / 2;
|
|
} else {
|
|
median = merged[(merged.length - 1) / 2];
|
|
}
|
|
|
|
return median;
|
|
}
|
|
// @leet end
|