题目
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。
请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。
你可以假设 nums1 和 nums2 不会同时为空。
示例1:
1 | nums1 = [1, 3] |
示例2:
1 | nums1 = [1, 2] |
anwser
1 | double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size){ |
没有力气解读了,到现在最难的一个算法了,处理各种边界问题到心态爆炸,而且还是在没有解决所以去参考了解法自己实现的情况下,具体解法采用的是最小k值法,详细算法请参考下列链接,我就不赘述了:median-of-two-sorted-arrays
总结
即使知道了这么巧妙的解法,实现起来也花了好久好久,错了很多遍,不过自己最终挺了过来,坚持完成了,超过了88%的c语言提交者,虽然是因为算法优秀,但是毕竟是自己实现的,也希望自己后面遇到困难坚持下去,不放弃,总会成功的。