问题描述:
解题思路:
输入的两个数组为有序的。新建一个数组int[m+n]。将nums1和nums2元素两两比较,放入int[m+n]中,再重新把 int[m+n]放回nums1中。合并完毕。
题解:
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int p1 = 0;
int p2 = 0;
int cur = 0;
int []nums = new int[m+n];
while(p1<m||p2<n){
if (p1 == m){
cur = nums2[p2++];
}else if(p2 == n){
cur = nums1[p1++];
}else if(nums1[p1]<nums2[p2]){
cur = nums1[p1++];
}else{
cur = nums2[p2++];
}
nums[p1+p2-1] = cur;
}
for(int i = 0;i<m+n;i++){
nums1[i] = nums[i];
}
}
}