美文网首页
二分法求两个有序数组中第k大的元素

二分法求两个有序数组中第k大的元素

作者: 不识地理不懂距离 | 来源:发表于2019-02-11 16:24 被阅读0次

1.二分搜索就是每次尽量去掉数组得一部分元素

2.第一次取K个元素出来,nums1中取 K/2个(不够就全都取出), nums2中取 K - K/2(或nums1.size()),

判断取出的两个数组元素中的末位谁大谁小;

一般情况下:两个数组都取了k/2个元素

那么两个数组的情况就是 

k/2-1个数, a ,。。。

k/2-1个数, b ,。。。

假设a<b

(1)则a前面的数一定在最小的k个数中,即第k个数不在a前面

(因为a前面的数一定小于a后面并且小于b和b后面的,所以一定属于最小的k个数中)

(2)b后面的数一定比k个数大,所以第k个数也不在b后面

(3)所以问题就变为在剩下的数中找到第k/2大的数

(4)重复执行,边界条件是nums1或nums2为空或最后只找一个数

相关文章

  • 4. Median of Two Sorted Arrays

    两个有序数组的中位数,相当于寻找两个数组第k大的值,利用二分法进行查找,确定之后改变k的值与起始索引。 合并两个有...

  • 二分法变形

    原二分法针对需求是:在有序的数组中查找元素k题:比如升序数组nums={1,2,3,5,8,9}中 查询是否有k=...

  • 二分法求两个有序数组中第k大的元素

    1.二分搜索就是每次尽量去掉数组得一部分元素 2.第一次取K个元素出来,nums1中取 K/2个(不够就全都取出)...

  • 算法分析 [最大/小值] 2019-02-28

    1. 数组,查找第k大值 215. 数组中的第K个最大元素(元素不重复无序) Kth Largest Elemen...

  • LintCode 465 [Kth Smallest Sum i

    原题 给定两个排好序的数组 A, B,定义集合 sum = a + b ,求 sum 中第k小的元素 样例给出 A...

  • LeetCode-215-数组中的第K个最大元素

    数组中的第K个最大元素 题目描述:给定整数数组 nums 和整数 k,请返回数组中第 **k** 个最大的元素。请...

  • 前端面试之算法二分法

    使用二分法的前提是,目标数组的元素必须是有序排列的,所以二分法属于有序查找算法 二分法又称为“折半查找”,从数组的...

  • 二叉搜索树中第K小的元素+整数反转

    230. 二叉搜索树中第K小的元素 思路 将二叉树存为数组,通过前序遍历存为从小到大的有序数组2.需要第几大的元素...

  • 解决TopK

    前言 TopK问题有以下几种常见形式 数组中的第K个最大元素动态添加的数组中的第K个最大元素数组中前k个最大的元素...

  • QuickSort的好哥们QuickSelect

    第k大元素 在数组中找到第k大的元素。 样例 给出数组 [9,3,2,4,8],第三大的元素是 4 给出数组 [1...

网友评论

      本文标题:二分法求两个有序数组中第k大的元素

      本文链接:https://www.haomeiwen.com/subject/cttyjqtx.html