力扣88.合并两个有序数组
题目:
给你两个按非递减顺序排列的整数数组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++
}
}
}
本文作者:tjhzdsa
本文链接:https://www.cnblogs.com/tjhzdsa/p/18049739
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步