天天看點

#6 Merge Two Sorted Arrays

題目描述:

Merge two given sorted integer array A and B into a new sorted integer array.

Have you met this question in a real interview?  Yes Example

A=

[1,2,3,4]

B=

[2,4,5,6]

return 

[1,2,2,3,4,4,5,6]

題目思路:

two pointers的簡單題,就不多說了。

Mycode(AC = 13ms):

class Solution {
public:
    /**
     * @param A and B: sorted integer array A and B.
     * @return: A new sorted integer array
     */
    vector<int> mergeSortedArray(vector<int> &A, vector<int> &B) {
        // write your code here
        vector<int> ans(A.size() + B.size(), 0);
        
        if (A.size() == 0) return ans;
        
        int idx1 = 0, idx2 = 0, idx = 0;
        
        while (idx1 < A.size() && idx2 < B.size()) {
            if (A[idx1] <= B[idx2]) {
                ans[idx++] = A[idx1++];
            }
            else {
                ans[idx++] = B[idx2++];
            }
        }
        
        while (idx1 < A.size()) {
            ans[idx++] = A[idx1++];
        }
        
        while (idx2 < B.size()) {
            ans[idx++] = B[idx2++];
        }
        
        return ans;
    }
};