题解 | #合并两个有序的数组#
合并两个有序的数组
http://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665
class Solution { public: void merge(int A[], int m, int B[], int n) { /* if(n == 0)return; for(int i = 0; i < n; i++) { A[i+m] = B[i]; } m += n; for(int i = 0; i < m - 1; i++) { for(int j = 0; j < m - 1 - i; j++) { if(A[j] > A[j+1]) { int nTmp = A[j]; A[j] = A[j+1]; A[j+1] = nTmp; } } } */ vector<int> vecData; int i = 0; int j = 0; while(i < m && j < n) { if(A[i] > B[j]) vecData.push_back(B[j++]); else vecData.push_back(A[i++]); } while(i < m) vecData.push_back(A[i++]); while(j < n) vecData.push_back(B[j++]); for(int i = 0; i < vecData.size(); i++) { A[i] = vecData[i]; } } };