题目: 两个有序数组A和B,分别拥有m和n的长度,求其合并后的第k个值.
代码实现:
// 二分归并排序 func binaryMerge(arr1, arr2 []int) interface{} { i, j, la1, la2, temp := 0, 0, len(arr1), len(arr2), 0 var ms []int for i < la1 && j < la2 { if arr1[i] <= arr2[j] { temp = arr1[i] ms = append(ms, temp) i++ } else { temp = arr2[j] ms = append(ms, temp) j++ } } // 把剩下的左边进行合并 for i < la1 { temp = arr1[i] ms = append(ms, temp) i++ } // 把剩下的右边进行合并 for j < la2 { temp = arr2[j] ms = append(ms, temp) j++ } return ms }