思路:二分查找
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)
}
}