1. 程式人生 > >LintCode 6. 合並排序數組 II

LintCode 6. 合並排序數組 II

返回 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