leetcode(2)尋找兩個有序陣列的中位數的js實現
阿新 • • 發佈:2019-01-06
一.題目描述:
給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2。
請你找出這兩個有序陣列的中位數,並且要求演算法的時間複雜度為 O(log(m + n))。
你可以假設 nums1 和 nums2 不會同時為空。
示例 1:
nums1 = [1, 3]
nums2 = [2]
則中位數是 2.0
示例 2:
nums1 = [1, 2]
nums2 = [3, 4]
則中位數是 (2 + 3)/2 = 2.5
二.js程式碼實現:
1.思路:
(1)運用es6的延展操作符直接合並兩個陣列
(2)運用sort將新的陣列num從小到大排序
(3)通過對合並後的陣列元素個數奇偶性判定,返回不同情況下中位數
2.程式碼:
/** * @param {number[]} nums1 * @param {number[]} nums2 * @return {number} */ var findMedianSortedArrays = function(nums1, nums2) { let num1 = [...nums1, ...nums2]; let num = num1.sort((a,b) => {return a-b;}); let m = parseInt((num.length) / 2); let l =num.length; if (l % 2 == 0) { return (num[m] + num[m-1])/2; } else { return num[m]; } };