leetcode-88 合并两个有序数组


每天一道leetcode88-合并两个有序数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
func merge(nums1 []int, m int, nums2 []int, n int) {
for p := m + n; m > 0 && n > 0; p-- {
if nums1[m-1] <= nums2[n-1] {
nums1[p-1] = nums2[n-1]
n--
} else {
nums1[p-1] = nums1[m-1]
m--
}
}
for ; n > 0; n-- {
nums1[n-1] = nums2[n-1]
}
}

我觉的这段代码不好理解(也许更高效一点),还是下方归并排序那里,重新定义一个新的数组的方式更符合直觉


再加一段代码就是 归并排序

或者说,归并排序 的底层,就是 合并两个有序数组

美团一面:两个有序的数组,如何高效合并成一个有序数组

文章目录