两个有序数组求第k小元素

原创 2018年04月15日 15:24:34

思路:二分查找

func findKth(nums1,nums2[]int,start1,start2,k int)int{
	if start1>=len(nums1){
		return nums2[start2+k-1]
	}
	if start2>=len(nums2){
		return nums1[start1+k-1]
	}


	if k==1 {
		return int(math.Min(float64(nums1[start1]),float64(nums2[start2])))
	}


	midA:=math.MaxInt32
	midB:=math.MaxInt32
	if start1+k/2-1 <len(nums1){
		midA = nums1[start1+k/2-1]
	}
	if start2+k/2-1 <len(nums2){
		midB = nums2[start2+k/2-1]
	}


	if midA<midB{
		return findKth(nums1,nums2,start1+k/2,start2,k-k/2)
	}else {
		return findKth(nums1,nums2,start1,start2+k/2,k-k/2)
	}
}

两个有序数组求第k小元素

和两个数组求中位数有点类似. 思路还是二分查找, 也就是在一个数组中进行二分搜索, 每次比较中点位置元素和另一个数组对应位置的大小关系. 比如要找第K个数, 并且当前搜索到了数组A的x位置, 那么要比...
  • qq508618087
  • qq508618087
  • 2016年11月17日 10:56
  • 289

[LeetCode题解]从两个有序数组的并集中寻找第k小元素

Given two sorted arrays A, B of size m and n respectively. Find the k-th smallest element in the uni...
  • weiyuefei
  • weiyuefei
  • 2016年08月22日 23:20
  • 1377

【leetcode】——从两个有序数组中寻找他们并集的第k小元素

题目题目:There are two sorted arrays A and B of size m and n respectively. Find the median of the two so...
  • peach90
  • peach90
  • 2015年05月09日 11:17
  • 1666

数组试题---两个有序数组中第K大的元素

RT,在两个有序数组中找中位数或者第K大的元素. 假设两个数组为A, B长度分别为m,n.分别是递增顺序。 可以采用的算法有很多: 首先想到的是类似MergeSort的方式,合并的同时找第K大元素,这...
  • FENGQIYUNRAN
  • FENGQIYUNRAN
  • 2015年04月16日 15:13
  • 1484

求两个有序整型数组元素和的第K大值

今天与人讨论问题,发现一个很有意思的题目:给定两个有序的整型数组,要求在最优的情况下找到两个数组元素求和后的第K大的值。 1、刚开始遇到这个问题,我直观的想法就是分配一个数组保存两个数组元素的和,然...
  • yangfeisc
  • yangfeisc
  • 2015年04月21日 22:28
  • 1040

从两个有序数组的并集中寻找第k小元素

只需要O(k)的时间复杂度,不需要额外申请空间。#include #include #include using namespace std;int findKthSmall(vector &a, ...
  • will130
  • will130
  • 2016年03月09日 19:53
  • 587

两个排序数组第k大的数

double findKth(int a[], int m, int b[], int n, int k) { //always assume that m is equal or small...
  • jeason29
  • jeason29
  • 2015年09月25日 12:06
  • 329

从俩个有序数组中找出第K小的数。要求时间复杂度O(logmin(m,n))

思路 该题目要求时间复杂度为O(log(min{m,n})) 所以不能直接遍历任意一个数组这样时间复杂度就不符合了。也不能对任意一数组进行二分查找,因为要求是俩个数组元素合并后的第K小的数,所以直接...
  • sdoyuxuan
  • sdoyuxuan
  • 2017年08月25日 21:23
  • 310

求两个有序数组A和B的第k大的数——Java

package com.bupt; public class Solution6 { public static int Search(int[] a,int startA,int endA,...
  • u011438605
  • u011438605
  • 2017年03月23日 16:06
  • 295

leetcode | Median of Two Sorted Arrays 寻找2个有序数组中第k大的值

问题 Median of Two Sorted ArraysThere are two sorted arrays A and B of size m and n respectively. Find...
  • quzhongxin
  • quzhongxin
  • 2015年05月10日 17:12
  • 1783
收藏助手
不良信息举报
您举报文章:两个有序数组求第k小元素
举报原因:
原因补充:

(最多只允许输入30个字)