题目:
给你两个按非递减顺序排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和 nums2中的元素数目。
请你合并nums2到nums 中,使合并后的数组同样按非递减顺序排列。
注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为m + n其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。
实现方法:
方法一:
直接将num2数组里的元素加入num1,调用sort.Ints函数进行排序
import "sort"
func merge(nums1 []int, m int, nums2 []int, n int) {
j := 0
for i := m; i < m+n; i++ {
nums1[i] = nums2[j]
j++
}
sort.Ints(nums1)
方法二:
用循环比较大小实现插入
func merge(nums1 []int, m int, nums2 []int, n int) {
i := 0
j := 0
for j != n {
if i == m {
for a := i; a < len(nums1); a++ {
nums1[a] = nums2[j]
j++
}
return
}
if nums1[i] <= nums2[j] {
i++
} else {
for a := m; a > i; a-- {
nums1[a] = nums1[a-1]
}
nums1[i] = nums2[j]
m++
j++
i++
}
}
}
标签:int,合并,力扣,++,88,数组,nums1,nums2
From: https://www.cnblogs.com/tjhzdsa/p/18049739