码迷,mamicode.com
首页 > 编程语言 > 详细

LintCode 6. 合并排序数组 II

时间:2018-01-27 00:44:14      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:color   merge   str   public   nbsp   res   log   pos   gpo   

题目:合并两个排序的整数数组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

标签:color   merge   str   public   nbsp   res   log   pos   gpo   

原文地址:https://www.cnblogs.com/zslhg903/p/8361862.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!