黑凤梨

文章 评论 浏览 27

黑凤梨 2022-05-04 13:55:47
// 时间复杂度为O(M+N)的依次比较排序
function sortMN(arr1,arr2) {
	let i=j=0;
	const arr1length = arr1.length;
	const arr2length = arr2.length;
	let arr = [];
	while(i< arr1length && j< arr2length) {
		if (arr1[i] < arr2[j]){
			arr.push(arr1[i])
			i++
		} else {
			arr.push(arr2[j])
			j++
		}
	}
	if(i === arr1length){
		arr.concat(arr2.slice(j));
	} else {
		arr.concat(arr1.slice(i))
	}
	return arr
}
function middleNumber(arr1,arr2) {
	let arr = sortMN(arr1,arr2);
	let arrLength = arr.length;
    if (arrLength % 2 === 0) {
    	return (arr[arrLength/2] + arr[arrLength/2-1]) / 2.00
    } else {
    	eturn arr[arrLength/2]
    }
}

第 93 题:给定两个大小为 m 和 n 的有序数组 nums1 和 nums2,请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log(m+n))。

黑凤梨 2022-05-04 13:49:47

@thereisnowinter 666~ 为你打 call~

稍微解释一下:

Function.apply.bind([].concat, [])

// 相当于

function(arg) {
  return Function.apply.call([].concat, [], arg)
}

// 相当于

function(arg) {
  return [].concat.apply([], arg)
}

// 相当于
// 这里错了
function(arg) {
   return [].concat(arg)
}

// 应该是

function(arg) {
   return [].concat(...arg)
}

JavaScript 专题之数组扁平化

更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文