简体   繁体   中英

Merge Sorted Array leetcode

var merge = function(nums1, m, nums2, n) {

    //contcating two array
     let array = nums2.concat(nums1)
    // sort the array
     array.sort((a,b) => a-b)
     // remove element > m+n length
 return array.slice(m+n-n)
};

This ^ function is returning -> [1,2,3,0,0,0] if i'm applying console then answer is same as expected -> [1,2,2,3,5,6]

Why is this happening ?

Remove slice function from the end of the function. slice(m+nn) slices your sorted array and returns array from index m+1 to the last index.

 var merge = function(nums1, m, nums2, n) { //contcating two array let array = nums2.concat(nums1) // sort the array array.sort((a,b) => ab) // remove element > m+n length return array.slice(m+nn); }; console.log(merge([2,4,8,9],4,[0,4,6,9],4));

You can use the following function to merge and then sort the two arrays. Time complexity of this approach is O(nlogn)

 function merge(arr1,arr2){ return [...arr1,...arr2].sort(); } console.log(merge([4,8,6],[1,3,9,10]));

The second approach runs in O(n) time.

 function merge(arr1,m,arr2,n){ let result = []; let i=0 , j = 0 ; while(i<m && j<n){ if(arr1[i]<arr2[j]){ result.push(arr1[i]); i++; }else{ result.push(arr2[j]); j++; } } while(i<m){ result.push(arr1[i]); i++; } while(j<n){ result.push(arr2[j]); j++; } return result; } console.log(merge([4,5,6],3,[1,3,8,10],4));

I did not see any problem with your code and it works, I just added another code. I think the problem with your console.log .

 var merge = function(nums1, m, nums2, n) { //contcating two array let array = nums2.concat(nums1) // sort the array array.sort((a,b) => ab) // remove element > m+n length return array.slice(m+nn) }; console.log(merge([1,2,3,0,0,0],3,[2,5,6],3));

 var merge = function(nums1, m, nums2, n) { return nums1.slice(0, m) .concat(nums2.slice(0, n)) .sort((i, j) => i - j); }; console.log( merge([1,2,3,0,0,0],3,[2,5,6],3))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM