Merge Sorted Array 题解

题目来源:Merge Sorted Array

> Given two sorted integer arrays A and B, merge B into A as one sorted array. Note: You may assume that A has enough space (size that is greater or equal to m + n) to hold additional elements from B. The number of elements initialized in A and B are m and n respectively.

解题思路: 因为A空间足够,所以直接从后往前定位就可以。只需要将B放完即可,若B放完,A也已经呆在应该待的位置了。

    void merge(int A[], int m, int B[], int n) 
    {
        int tot = m + n - 1;
        int i = m-1;
        int j = n-1;
        while(j >= 0)
        {
            if(i>=0 && A[i] >= B[j])
                A[tot--] = A[i--];
            else
                A[tot--] = B[j--];
        }
    }

Last updated

Was this helpful?