Description:
There are two sorted arrays nums1 and nums2 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)).
思路:找出两个已经排好序数组的中位数。可以使用合并排序中的merge,然后直接找出中位数就能AC。时间复杂度为O(m+n)。但是!!这毕竟是一个Hard的题!时间复杂度要求O(log(m+n))!
先上merge代码:
public class Solution { public double findMedianSortedArrays(int[] nums1, int[] nums2) { int m = 0, n = 0; if(nums1 != null) { m = nums1.length; } if(nums2 != null) { n = nums2.length; } int[] res = new int[m + n]; //merge int cur = 0, i = 0, j = 0; while(i
严重怀疑Java的测试数据和C/C++的不一样。要不效率会这么高!
O(log(m+n))的二分代码网上都是一样的,就不贴了。
http://blog.csdn.net/zxzxy1988/article/details/8587244