Algorithm

[leetcode] 4. Median of Two Sorted Arrays (Typescript)

KMSEOP 2021. 2. 21. 13:59
728x90
Given two sorted arrays nums1 and nums2 of size m and n respectively, return the median of the two sorted arrays.
Follow up: The overall run time complexity should be O(log (m+n)).

Example 1:

Input: nums1 = [1,3], nums2 = [2]

Output: 2.00000

Explanation: merged array = [1,2,3] and median is 2.

 

Example 2:

Input: nums1 = [1,2], nums2 = [3,4]

Output: 2.50000

Explanation: merged array = [1,2,3,4] and median is (2 + 3) / 2 = 2.5.

 

Example 3:

Input: nums1 = [0,0], nums2 = [0,0]

Output: 0.00000

 

Example 4:

Input: nums1 = [], nums2 = [1]

Output: 1.00000

 

Example 5:

Input: nums1 = [2], nums2 = []

Output: 2.00000

 

Constraints:

  • nums1.length == m
  • nums2.length == n
  • 0 <= m <= 1000
  • 0 <= n <= 1000
  • 1 <= m + n <= 2000
  • -106 <= nums1[i], nums2[i] <= 106

 

function findMedianSortedArrays(nums1: number[], nums2: number[]): number {
    let result: number = 0;

    const sortedArray: number[] = nums1.concat(nums2).sort((a, b) => a - b);
    const medianNumbers: number [] = [];

    if (sortedArray.length % 2 === 1) {
        const index: number = Math.round(sortedArray.length / 2) - 1;
        medianNumbers.push(sortedArray[index]);
    } else {
        const index1: number = sortedArray.length / 2 - 1;
        const index2: number = index1 + 1;

        medianNumbers.push(sortedArray[index1]);
        medianNumbers.push(sortedArray[index2]);
    }

    result = medianNumbers.reduce((a, v) => a + v) / medianNumbers.length;
    
    return result;
};
728x90