https://leetcode.com/problems/median-of-two-sorted-arrays/

A1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
* @param {number[]} nums1
* @param {number[]} nums2
* @return {number}
*/
var findMedianSortedArrays = function(nums1, nums2) {
let arr = nums1.concat(nums2)
arr.sort((a, b) => a - b)
let res
if (arr.length % 2) {
res = arr[~~(arr.length / 2)]
} else {
let mid = ~~(arr.length / 2)
res = (arr[mid - 1] + arr[mid]) / 2
}
return res
};

Array.prototype.sort()
sort() 方法用原地算法对数组的元素进行排序,并返回数组。排序算法现在是稳定的。
由于它取决于具体实现,因此无法保证排序的时间和空间复杂性。
默认排序顺序是根据字符串Unicode码点
所以以下例子的排序结果为:[-1, -2, 3]

1
2
[3]
[-2,-1]

A2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/**
* @param {number[]} nums1
* @param {number[]} nums2
* @return {number}
*/
var findMedianSortedArrays = function(nums1, nums2) {
let len = nums1.length + nums2.length
let i = 0
let j = 0
let cur
let pre
while ((i + j) <= len / 2) {
pre = cur
if (nums1[i] === undefined || nums1[i] > nums2[j]) {
cur = nums2[j++]
} else if (nums2[j] === undefined || nums1[i] <= nums2[j]) {
cur = nums1[i++]
}
}
console.log(pre, cur)
return len % 2 ? cur : (pre + cur) / 2
};