本文共 761 字,大约阅读时间需要 2 分钟。
说明:
初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。
你可以假设 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]
class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { //之前做归并都是重新创建一个数组,这个是放在原来的数组当中 int len1 = m - 1, len2= n - 1, len = m + n - 1; //从后面开始 while(len1 >= 0 && len2 >= 0){ if(nums1[len1] > nums2[len2]){ nums1[len--] = nums1[len1--]; }else{ nums1[len--] = nums2[len2--]; } } //判断当前nums2是否到头 while(len2 >= 0){ nums1[len--] = nums2[len2--]; } }}
转载地址:http://wvvp.baihongyu.com/