4. Median of Two Sorted Arrays

  • Source : Link
  • Author : Han
  • Date : 2022-01-12

Problems

Given two sorted arrays nums1 and nums2 of size m and n respectively, return the median of the two sorted arrays.

The overall run time complexity should be O(log (m+n)).

Example 1:

1
2
3
Input: nums1 = [1,3], nums2 = [2]
Output: 2.00000
Explanation: merged array = [1,2,3] and median is 2.

Example 2:

1
2
3
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.

Solution

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution {
    fun findMedianSortedArrays(nums1: IntArray, nums2: IntArray): Double {
        return (nums1 + nums2).sorted().run {
            val halfSize = size / 2
            val half = this[halfSize]
            if (size.rem(2) == 0) {
                intArrayOf(this[halfSize - 1], half).average()
            } else {
                half.toDouble()
            }
        }
    }
}