多数组K大数
来源:互联网 发布:uml数据库建模 编辑:程序博客网 时间:2024/05/01 08:52
题目描述
给定两个有序数组arr1和arr2,在给定一个整数k,返回两个数组的所有数中第K小的数。
例如:
arr1 = {1,2,3,4,5};
arr2 = {3,4,5};
K = 1;
因为1为所有数中最小的,所以返回1;
arr1 = {1,2,3};
arr2 = {3,4,5,6};
K = 4;
因为3为所有数中第4小的数,所以返回3;
要求:如果arr1的长度为N,arr2的长度为M,时间复杂度请达到O(log(min{M,N}))。
//多数组K大数 public int findKthNum(int[] arr1, int[] arr2, int kth) { int len1 = arr1.length; int len2 = arr2.length; int k = 0; int i =0; int j =0; int result; while (i < len1 && j < len2) { if (arr1[i] < arr2[j]) { result = arr1[i]; ++i; }else { result = arr2[j]; ++j; } ++k; if (k == kth) { return result; } } while (i < len1) { ++k; if (k == kth) { return arr1[i]; } ++i; } while (j < len2) { ++k; if (k == kth) { return arr2[j]; } ++j; } return 0; }
0 0
- 多数组K大数
- 多数组K大数
- 多数组中位数,k大数 -- 二分思路
- 多数组第K小数
- k 大数
- 数组中求第K大数
- 求第k大数
- 快排求第k大数
- 数组中求第K大数
- 第K大数问题
- 寻找前K大数
- 区间K大数查询
- openjudge k大数
- 区间K大数查询
- 区间k大数查询
- 区间K大数查询
- 数组中求第K大数
- 区间k大数查询
- java生成数字证书
- Web Service
- 多线程
- map内部的输出方式
- 第二周项目3-体验复杂度(2)汉诺塔
- 多数组K大数
- JAVA程序签发数字证书
- Oracle 删除重复数据只留一条
- 归并排序详解
- Android 开发艺术探索笔记 前四章
- 远程访问jupyter notebook
- 模重复平方计算法
- Web Service 是什么
- 多线程面试