Sorry. my answer is wrong. My LD gave me a better answer which time complexity is log(m+n).
j*j
24 楼
int foo(int* a, int* b, int a_min, int a_max, int b_min, int b_max) { if((a_max-a_min==1)&&(b_max-b_min==1)) return median of a[a_min],a[a_max ],b[b_min],b[b_max];
int a_mid=(a_min+a_max)/2; int b_mid=ceil((b_min+b_max)/2); if(a[a_mid]==b[b_mid]) return a[a_mid]; elseif(a[a_mid]else return foo(a,b,a_min,a_mid,b_mid,b_max); }
H*M
25 楼
sommthing like this wont be good
max
【在 j*****j 的大作中提到】 : int foo(int* a, int* b, int a_min, int a_max, int b_min, int b_max) : { : if((a_max-a_min==1)&&(b_max-b_min==1)) return median of a[a_min],a[a_max : ],b[b_min],b[b_max]; : : int a_mid=(a_min+a_max)/2; : int b_mid=ceil((b_min+b_max)/2); : if(a[a_mid]==b[b_mid]) return a[a_mid]; : elseif(a[a_mid]: else return foo(a,b,a_min,a_mid,b_mid,b_max);