方法一(数组内置排序方法)
var merge = function(nums1, m, nums2, n) {
for(let i=0;i<n;i++){
nums1[m+i]=nums2[i]
}
return nums1.sort((a,b)=>{
return a-b
})
}
方法二(放到临时数组里)
var merge = function(nums1, m, nums2, n) {
let temp = new Array(n+m);
for(let i=0,p1=0,p2=0;i<n+m;i++){
if(p1>=m){
temp[i] = nums2[p2++]
}else if(p2>=n){
temp[i] = nums1[p1++]
}else if(nums2[p2]<nums1[p1]){
temp[i] = nums2[p2++]
}else{
temp[i] = nums1[p1++]
}
}
for(let j=0;j<n+m;j++){
nums1[j] =temp[j]
}
return nums1;
}
方法三不额外创建空间
var merge = function(nums1, m, nums2, n) {
let k=m+n;
for(let i=k-1,p1=m-1,p2=n-1;i>=0;i--){
if(p1<0){
nums1[i] = nums2[p2--];
}else if(p2<0){
nums1[i] = nums1[p1--];
}else if(nums2[p2]<nums1[p1]){
nums1[i] = nums1[p1--]
}else{
nums1[i] = nums2[p2--]
}
}
return nums1;
};