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++;
}
}
}
}