合并两个有序的数组golang版本
2023-08-20
1分钟阅读时长
合并两个有序的数组
func merge(nums1 []int, m int, nums2 []int, n int) {
//max指向num1与num2合并之后的最后一个元素
max := m + n - 1
//指向num1最后一个元素
i := m - 1
//指向num2最后一个元素
j := n - 1
for i >= 0 && j >= 0 {
//从右向左比较值的大小
if nums1[i] > nums2[j] {
nums1[max] = nums1[i]
i--
} else {
nums1[max] = nums2[j]
j--
}
//max向左移动
max--
}
//如果i越界了,将nums2剩余的元素赋值到nums1的[0,m]之间
for j >= 0 {
nums1[max] = nums2[j]
max--
j--
}
for i >= 0 {
nums1[max] = nums1[i]
max--
i--
}
}