获取两个已排序数组的第K大值

来源:互联网 发布:linux firewall cmd 编辑:程序博客网 时间:2024/05/16 06:33
    int getKth(int* nums1, int m, int* nums2, int n, int k)    {        if(m > n)            return getKth(nums2, n, nums1, m, k);        if(m == 0)            return nums2[k-1];        if(k == 1)            return min(nums1[0], nums2[0]);                    int i = min(m, k/2);        int j = min(k/2, n);        if(nums1[i-1] > nums2[j-1])            return getKth(nums1, m, nums2+j, n-j, k-j);        else            return getKth(nums1+i, m-i, nums2, n, k-i);    }


0 0
原创粉丝点击