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.
这个嘛,从后往前归并就好了。
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 if ( n==0 ) return ; int last=m+n-1; int pA=m-1,pB=n-1; while(pA>=0&&pB>=0) { if ( A[pA]>=B[pB] ) { A[last--]=A[pA]; pA--; } else { A[last--]=B[pB]; pB--; } } int pt=pA>=0?pA:pB; int* rest=pA>=0?A:B; while(pt>=0) { A[last--]=rest[pt--]; } } };