0
点赞
收藏
分享

微信扫一扫

合并两个有序数组(js)

dsysama 2022-01-08 阅读 140

题意:题面

题解:开一个额外数组,把较小的搞到里面去,需要判断的是边界条件,如果到了m or n,那么你需要就把另一个数组往里面加就好了。

最后遍历一波把开的数组里的数,放到num1里面。

var merge = function(nums1, m, nums2, n) {
    let temp = [];
    let p1 = 0,p2 = 0;
    while(p1<m||p2<n){
        if(p1===m){
            temp.push(nums2[p2++]);
        }
        else if(p2===n){
            temp.push(nums1[p1++]);
        }
        else if(nums1[p1]<nums2[p2]){
            temp.push(nums1[p1++]);
        }
        else if(nums1[p1]>=nums2[p2]){
            temp.push(nums2[p2++]);
        }
    }
    for(let i=0;i<m+n;i++){
        nums1[i]=temp[i];
    }
};
举报

相关推荐

0 条评论