这题记得当时也是查了网上的资料才做出来的,而且采用的是一个通用算法findKth。
其实思想很简单:要寻找第k小的元素,那么总是保持数组A的当前元素(即A[a])为当前最小元素(如果不是,则交换A和B数组,使这一条成立),然后弹出该元素(即++a),然后再递归调用寻找第k-1小的元素。
这需要注意的地方在于:
A.length + B.length为偶数的时候,中位数有两个,要取平均。A.length + B.length为奇数的时候,中位数只有一个。
实现代码如下:
1 | /** |
这题记得当时也是查了网上的资料才做出来的,而且采用的是一个通用算法findKth。
其实思想很简单:要寻找第k小的元素,那么总是保持数组A的当前元素(即A[a])为当前最小元素(如果不是,则交换A和B数组,使这一条成立),然后弹出该元素(即++a),然后再递归调用寻找第k-1小的元素。
这需要注意的地方在于:
A.length + B.length为偶数的时候,中位数有两个,要取平均。A.length + B.length为奇数的时候,中位数只有一个。实现代码如下:
1 | /** |
原文作者: findingsea
原文链接: http://findingsea.github.io/2015/03/23/median-of-two-sorted-arrays/
发表日期: March 23rd 2015, 9:18:00 am
版权声明: 本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可
jsonContent:
meta: false
pages: false
posts:
title: true
date: true
path: true
text: false
raw: false
content: false
slug: false
updated: false
comments: false
link: false
permalink: false
excerpt: false
categories: true
tags: true