- 算法
双指针 - 核心思想
两个指针分别指向一个数组,挨个比较,较小的进入新数组。这一部分和归并排序的合并部分方法是一样的。 - 代码
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int[] temp = new int[nums1.length];
int i = 0,j = 0,k = 0;
while(i != m && j != n){
if(nums1[i] < nums2[j]){
temp[k] = nums1[i];
i++;
}else{
temp[k] = nums2[j];
j++;
}
k++;
}
if(i != m){
for(;i <= m-1;i++,k++){
temp[k] = nums1[i];
}
}else{
for(;j <= n-1;j++,k++){
temp[k] = nums2[j];
}
}
for(int ii = 0;ii < temp.length;ii++){
nums1[ii] = temp[ii];
}
}
}