Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
//方法1
function merge(nums1,m,nums2,n) {
var i = 0,
j = 0,
flag = 0;
var cnum = [];
for (var k = 0; k < nums1.length; k++) {
cnum[k] = nums1[k]
}
while(i < m || j < n) {
if (i < m && j < n) {
if(cnum[i] < nums2[j]){
nums1[flag++] = cnum[i++]
}else{
nums1[flag++] = nums2[j++]
}
}else{
if(i < m){
nums1[flag++] = cnum[i++]
}
if (j < n) {
nums1[flag++] = nums2[j++]
}
}
}
return nums1;
}
//方法2,两种方法本质上是一样的,归并的思想,由于数组是有序的,所以同数组间不需要比较,比较的是a[i]和b[j]
function merge(a,b) {
var res = [];
var i = 0, j = 0, k = 0;
while(i < a.length && j < b.length){
if(a[i] < b[j]){
res[k++] = a[i++]
}else{
res[k++] = b[j++]
}
}
while(i < a.length){
res[k++] = a[i++]
}
while(j < b.length){
res[k++] = b[j++]
}
return res
}