题目描述:
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。
算法的时间复杂度应该为 O(log (m+n)) 。
思路简单但细节满满的一个题
主要思路是双指针,移动次数为两数组长度和的一半 Math.ceil((n1 + n2) / 2)。唯一需要注意的就是边界条件,数组越界的问题。
var findMedianSortedArrays = function(nums1, nums2) {
let t1 = 0,
t2 = 0;
let n1 = nums1.length;
let n2 = nums2.length;
let total = Math.ceil((n1 + n2) / 2);
var i = 0;
while (t1 < n1 && t2 < n2) {
i++;
if (i == total) {
if ((n1 + n2) % 2 == 0) {
let temp1 = nums1[t1] >= nums2[t2] ? nums2[t2] : nums1[t1];
nums1[t1] >= nums2[t2] ? t2++ : t1++;
if (t1 == n1) {
return (temp1 + nums2[t2])