给出一个有序的整数数组 A 和有序的整数数组 B ,请将数组 B 合并到数组 A 中,变成一个有序的升序数组

  • Post author:
  • Post category:其他

给出一个有序的整数数组 A 和有序的整数数组 B ,请将数组 B 合并到数组 A 中,变成一个有序的升序数组

数据范围: 0≤n,m≤1000,∣Ai∣<=100|,∣Bi∣<=100

注意:

1.保证 A 数组有足够的空间存放 B 数组的元素, A 和 B 中初始的元素数目分别为 m 和 n,A的数组空间大小为 m+n

2.不要返回合并的数组,将数组 B 的数据合并到 A 里面就好了

3. A 数组在[0,m-1]的范围也是有序的

示例1

输入

[4,5,6],[1,2,3]

输出

[1,2,3,4,5,6]

解析:

/*
* 最优解:从后往前处理,不需要开辟额外空间
* Runtime: 0 ms.Your runtime beats 45.38 % of java submissions.
*/
public void merge(int[] nums1, int m, int[] nums2, int n) {
int i = m - 1, j = n - 1, index = m + n - 1;
while (i >= 0 && j >= 0)
nums1[index--] = nums1[i] > nums2[j] ? nums1[i--] : nums2[j--];
while (j >= 0)
nums1[index--] = nums2[j--];
}

版权声明:本文为m0_62089210原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。