class Solution { public: void merge(int A[], int m, int B[], int n) { if(!A) A = B; if(!B) return; int* p_a = A + m - 1; int* p_b = B + n - 1; int* p = A + m + n - 1; while(p_a >= A && p_b >= B){ if(*p_a > *p_b) *p-- = *p_a--; else *p-- = *p_b--; } while(p_a >= A) *p-- = *p_a--; while(p_b >= B) *p-- = *p_b--; } };