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 to hold additional elements from B. The number of elements initialized in A and B are m and n respectively.
You may assume that A has enough space to hold additional elements from B. The number of elements initialized in A and B are m and n respectively.
Idea: Simply do it in reverse order
class Solution { public: void merge(int A[], int m, int B[], int n) { // Start typing your C/C++ solution below // DO NOT write int main() function int i = m - 1, j = n - 1, k = m + n - 1; while (i >= 0 && j >= 0) { if (A[i] < B[j]) { A[k] = B[j]; --j; } else { A[k] = A[i]; --i; } --k; } while (j >= 0) { // copy the rest of B into A A[k] = B[j]; --k; --j; } } };
No comments:
Post a Comment