给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。 请你找出这两个正序数组的中位数,并且要求算法的空间复杂度为 O(1)。 你可以假设 nums1 和 nums2 不会同时为空。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/median-of-two-sorted-arrays
class Solution {
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
int len1 = nums1.length;
int len2 = nums2.length;
int len = len1 + len2;
int right = -1;
int left = -1;
int curA = 0;
int curB = 0;
for(int i=0;i<=len/2;i++){
left = right;
if(curA<len1 && (curB>=len2||nums1[curA]<nums2[curB])){
right = nums1[curA++];
}
else{
right = nums2[curB++];
}
}
if(len%2 == 1){
return right;
}
else{
return (right+left)/2.0;
}
}
}