int find_kthnum(int *num1, int n1, int *num2, int n2, int k) {
if (n2 < n1)
{
return find_kthnum(num2, n2, num1, n1, k);
}
if (k==1)
{
return min(num1[0],num2[0]);
}
if (n1 == 0)
{
return num2[k-1];
}
int k1 = min(k>>1,n1);
int k2 = k - k1;
if(num1[k1-1] == num2[k2-1])
return num1[k1-1];
if (num1[k1-1] < num2[k2-1])
return find_kthnum(num1 + k1, n1 - k1, num2, k2 ,k - k1);
return find_kthnum(num1, k1, num2+k2, n2-k2 ,k - k2);
}
查找两个排序好数组的第K个数
最新推荐文章于 2024-06-15 11:56:23 发布