1、前言
2、思路
这道题,简单点做法就是归并排序的子问题,复杂点做法就是在 num1 上从后往前合并
3、代码
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int[] temp = new int[m];
for (int i = 0; i < m; i++) {
temp[i] = nums1[i];
}
for(int i = 0, j = 0, k = 0; k < m + n; k++){
int a = i < m ? temp[i] : Integer.MAX_VALUE;
int b = j < n ? nums2[j] : Integer.MAX_VALUE;
if(a <= b){
nums1[k] = a;
i++;
}else{
nums1[k] = b;
j++;
}
}
}
}