leetcode 4. Median of Two Sorted Arrays

xiaoxiao2021-02-28  7

给了两个排好序的数组,如果再去把数组合并排序找中间数肯定超时。 这里分别从左端开始比较两个数组,当前个数k=0,i=j=0,如果array1[i]<=array2[j],i++,k++,当k为想要的中间数把它保存; class Solution { public:         double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {             int k=0,i=0,j=0;             int n1=nums1.size(),n2=nums2.size();             vector<int>a;             if(n1+n2==1){                if(!n1)                    return nums2[0];                 else return nums1[0];             }             while(i<n1&&j<n2)             {               double num;               if(nums1[i]<=nums2[j]){                  num=nums1[i];                  i++;               }               else {                    num=nums2[j];                   j++;                    }                 if(k==(n1+n2)/2||k==(n1+n2)/2-1)                     a.push_back(num);              k++;             }             while(i<n1)             {               if(k==(n1+n2)/2||k==(n1+n2)/2-1)                     a.push_back(nums1[i]);                 i++;                 k++;             }             while(j<n2)             {               if(k==(n1+n2)/2||k==(n1+n2)/2-1)                     a.push_back(nums2[j]);                 j++;                 k++;             }             if((n1+n2)&1)                 return a[1];             else                 return (a[0]+a[1])/2.0;         } };
转载请注明原文地址: https://www.6miu.com/read-1900381.html

最新回复(0)