LeetCode解题记录(4)
目录
前言
我将慢慢开始做LeetCode上的题,并做解题记录发布在这里。我每题会给出一到多个解法,记录思考过程。我算法巨烂,是想通过这种方式稍微补补,基本功和我一样差的小伙伴可以和我一起共勉,有大神路过可以指点一二,我感激不尽。解题的最底要求是能通过LeetCode的检测,我不会丧病的为了各种提高效率在一个题上纠缠不休,所以最终解法可能也不怎么样,大家看看就好~编程语言一律采用C#。题解代码会按编号发布到我的GitHub上(仅保留最终解法)。
正文
题目
problem004:
There are two sorted arrays A and B of size m and n respectively. Find
the median of the two sorted arrays. The overall run time complexity
should be O(log (m+n)).
求两个有序数组的中位数。
解法一
用库函数的写法,一下就过了:
public class Solution {
public double FindMedianSortedArrays(int[] A, int[] B) {
double result = 0;
int len = A.Length + B.Length;
List<int> temp = A.ToList();
temp.AddRange(B);
temp.Sort();
if ((len % 2) == 0)
{
result = (double)(temp[len / 2] + temp[len / 2 - 1])/2;
}
else {
result = temp[len / 2];
}
return result;
}
}
C#的库是很好用,但这样做这道题意义似乎就不大了。本来想过了就不在纠结的,但这样过一点意思都没有…
但是我在网上看了下大神们的算法,我没怎么看明白,现在只能先占个坑,等我明白了再用C#实现吧。
有兴趣的可以看看这篇文章。
解法二
暂缺。