Merge Sorted Array

07/07/2016 Array Two Pointers

Question

Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.

Note:

You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2. The number of elements initialized in nums1 and nums2 are m and n respectively.


Solution

Result: Accepted Time: 0 ms

Here should be some explanations.

void merge(int* nums1, int m, int* nums2, int n) {
    int *ptr=m+n+nums1 ;
    while(m && n) *(--ptr) = nums1[m-1] > nums2[n-1]? nums1[--m]: nums2[--n];
    while(n)  *(--ptr) = nums2[--n];
}

Complexity Analytics

  • Time Complexity:
  • Space Complexity: