leedcode_合并有序数组

  • 描述

给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。

注意:
  1. 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。
  2. 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。
输入样例
nums1 = [1,2,3,0,0,0], m = 3
nums2 = [2,5,6],       n = 3
输出样例
 [1,2,2,3,5,6]
  • go实现

思路

归并排序的思想,从后往前排,大的放在最后,依次放到最前

func merge(nums1 []int, m int, nums2 []int, n int) {
	length := m + n
	for m > 0 && n > 0 {
		length--
		if nums1[m-1] > nums2[n-1] {
			m--
			nums1[length] = nums1[m]

		} else {
			n--
			nums1[length] = nums2[n]
		}
	}

	for m > 0 {
		length--
		m--
		nums1[length] = nums1[m]
	}
	for n > 0 {
		length--
		n--
		nums1[length] = nums2[n]
	}

}

发布了51 篇原创文章 · 获赞 33 · 访问量 4万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术工厂 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览