博客主页:🏆李歘歘的博客 🏆

🌺每天不定期分享一些包括但不限于计算机基础、算法、后端开发相关的知识点,以及职场小菜鸡的生活。🌺

💗点关注不迷路,总有一些📖知识点📖是你想要的💗

⛽️今天的内容是     Leetcode  88. 合并两个有序数组        ⛽️💻💻💻

nums1nums2nums2nums1nums1
nums1nums2mnnums1m + nnums2

示例 1:

输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
输出:[1,2,2,3,5,6]

示例 2:

输入:nums1 = [1], m = 1, nums2 = [], n = 0
输出:[1]

提示:

0 <= m, n <= 2001 <= m + n <= 200nums1.length == m + nnums2.length == n-109 <= nums1[i], nums2[i] <= 109

先合并再排序:

func merge(nums1 []int, m int, nums2 []int, n int)  {
    nums1=append(nums1[:m],nums2...)
    sort.Ints(nums1)
}

边合并边排序:

func merge(nums1 []int, m int, nums2 []int, n int)  {
	i,j := 0,0
	num := make([]int,0,m+n)
	for i<m && j<n {
		if nums1[i]<nums2[j] {
			num = append(num,nums1[i])
			i++
		} else {
			num = append(num,nums2[j])
			j++
		}
	}
	if i==m {
		num = append(num,nums2[j:]...)
	} else {
		num = append(num,nums1[i:]...)
	}
	copy(nums1,num)
}