给出已排序数组a,b,长度分别为n,m,找到排在第k位置的数。
int solution(int a[], int n, int b[], int m, int&can) {
if (!a || !b || m + n < k)
return false;
int i = 0, j = 0;
int cur = 0;
while (i < n || j < m) {
int v1 = i < n ? a[i] : INT_MAX;
int v2 = j < m ? b[j] : INT_MAX;
if (v1 > v2) {
can = v2;
++j;
} else {
can = v1;
++i;
}
if (++cur == k)
return can;
}
return -1;
}