首页 > 代码库 > Leetcode--Median of Two Sorted Arrays
Leetcode--Median of Two Sorted Arrays
这道题感觉没什么讲的,需要注意的就是,num1,num2的长度并不相等,会有可能num2还没到尽头,num1就到尽头了
static double findMedianSortedArrays(vector<int> &nums1, vector<int> &nums2) { auto length = nums1.size() + nums2.size(); int x = 0, y = 0, even = 0, i = 0; double results[2] = {0, 0}; double result = 0; if (length % 2 == 0) { length = (length / 2)+1; even = 1; } else length = (length + 1) / 2; while (length != 0 && x < nums1.size() && y < nums2.size()) { if(nums1[x]==nums2[y]){ results[i]=nums1[x]; ++x; } else if (nums1[x] > nums2[y]) { results[i] = nums2[y]; ++y; } else { results[i] = nums1[x]; ++x; } i = ++i % 2; --length; } if (length != 0) { if (x < nums1.size()) while (length != 0) { results[i] = nums1[x]; i = ++i % 2; ++x; --length; } else { while (length != 0) { results[i] = nums2[y]; i = ++i % 2; ++y; --length; } } } if (even) result = (results[0] + results[1]) / 2; else { result = results[0] > results[1] ? results[0] : results[1]; } return result; }
另在网上看到了一种优化算法,不过看了很久还是不怎么懂,地址在这里:
http://blog.csdn.net/linhuanmars/article/details/19905515
Leetcode--Median of Two Sorted Arrays
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。