🌗 88. 合并两个有序数组
2022年10月10日
- algorithm
🌗 88. 合并两个有序数组
难度: 🌗
问题描述
解法
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
// 思路:
// 从右往左遍历,遇到大的进行填充右边的零
if(m == 0) {
System.arraycopy(nums2, 0, nums1, 0, n);
return;
}
if(n == 0) {
return;
}
int a = m - 1;
int b = n - 1;
int index = m + n - 1;
while(b >= 0 && a >= 0) {
if(nums2[b] >= nums1[a]) {
nums1[index] = nums2[b];
b --;
index --;
} else {
nums1[index] = nums1[a];
a --;
index --;
}
}
if(b >= 0) {
System.arraycopy(nums2, 0, nums1, 0, b + 1);
}
}
}