这道题,不难,真心不难,要看懂题目讲的是啥意思
第一个例子
---
num1中包含的元素: 1,2,3,0,0,0
num2中包含的元素:2,5,6
---
# 第一步:先设置三个指针
第一个指针指向num1最后一个元素
第二个指针指向 num1非零的最后一个元素
第三个指针指向num2最后一个元素
# 第二步:移动元素
判断第二个指针个第三个指针对应的元素谁大,则放入第一个指针指向的位置。
# 例子:
---
num1中包含的元素: 1,2,3,0,0,0
num2中包含的元素:2,5,6
---
第一次:num1 1,2,3,0,0,6
第二次:num1 1,2,3,0,5,6
第三次:num1 1,2,3,3,5,6
第四次:num1 1,2,2,3,5,6
```
public void merge(int[] nums1, int m, int[] nums2, int n) {
int a = nums1.length-1;
int b = n - 1;
int c = m - 1;
while (b >= 0){
if (c < 0){
nums1[a--] = nums2[b--];
continue;
}
int x = nums1[c];
int y = nums2[b];
if (y >= x){
nums1[a--] = y;
b--;
}else {
nums1[a--] = x;
c--;
}
}
}
```