給定兩個大小為 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;
}
}
}