Skip to main content

4.js

/** ------------------------------------------------------------------------------
*
* 4. Median of Two Sorted Arrays
* Topics: Array
* https://leetcode.com/problems/median-of-two-sorted-arrays/description/
*
------------------------------------------------------------------------------ */
/**
* @param {number[]} nums1
* @param {number[]} nums2
* @return {number}
*/
// var findMedianSortedArrays = function (nums1, nums2) {
// const array = [...nums1, nums2].sort((a, b) => a - b)
// console.log(array.length)
// const half = array[(array.length - 1) / 2]
// console.log(half)

// if (array.length % 2 === 0) {
// return (half + array[array.lenth / 2]) / 2
// }

// return half
// }

var findMedianSortedArrays = function (nums1, nums2) {
let len1 = nums1.length
let len2 = nums2.length

let total = len1 + len2
let midIndex = Math.floor(total / 2)

let i = 0,
j = 0,
count = 0
let current = 0,
prev = 0

while (count <= midIndex) {
prev = current

if (i < len1 && (j >= len2 || nums1[i] <= nums2[j])) {
current = nums1[i]
i++
} else {
current = nums2[j]
j++
}

count++
}
return total % 2 === 1 ? current : (current + prev) / 2
}

console.log()