LintCode 6. 合並排序數組 II
阿新 • • 發佈:2018-01-27
返回 push challenge ble -a turn pre -c ret
題目:合並兩個排序的整數數組A和B變成一個新的數組。
樣例給出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6]
挑戰你能否優化你的算法,如果其中一個數組很大而另一個數組很小?
解:簡單的歸並排序。
class Solution { public: /* * @param A: sorted integer array A * @param B: sorted integer array B * @return: A new sorted integer array */ vector<int> mergeSortedArray(vector<int> &A, vector<int> &B) { // write your code here vector<int> result; int i=0,j=0; int szA=A.size(); int szB=B.size(); while(true) { if(i>=szA&&j<szB) { result.push_back(B[j++]); } else if(i<szA&&j>=szB) { result.push_back(A[i++]); } else if(i<szA&&j<szB) { if(A[i]<B[j]) { result.push_back(A[i++]); }else { result.push_back(B[j++]); } } else break; } return result; } };
LintCode 6. 合並排序數組 II