• 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 (size that is greater or equal to m + n) to hold additional elements from B. The number of elements initialized in A and B are m andn respectively.

    C++代码如下:

    #include<iostream>
    using namespace std;
    
    class Solution {
    public:
        void merge(int A[], int m, int B[], int n) {
            int i=m-1;
            int j=n-1;
            int k=m+n-1;
            while(i>=0&&j>=0)
            {
                if(A[i]>=B[j])
                {
                    A[k--]=A[i--];
                }
                else
                {
                    A[k--]=B[j--];
                }
            }
            while(i>=0)
            {
                A[k--]=A[i--];
            }
            while(j>=0)
            {
                A[k--]=B[j--];
            }
        }
    };
    
    int main()
    {
        int A[10]={1,3,5,7,9};
        int B[5]={2,4,6,8,10};
        Solution s;
        s.merge(A,5,B,5);
        for(auto a:A)
            cout<<a<<" ";
        cout<<endl;
    }

    运行结果:

    #include<iostream>
    using namespace std;
    
    class Solution
    {
    public:
        void merge(int A[], int m, int B[], int n)
        {
            if(n==0)
                return;
            int i,j;
            int index=m+n-1;
            i=m-1;
            j=n-1;
            while(i>=0&&j>=0)
            {
                if(A[i]>B[j])
                {
                    A[index]=A[i];
                    i--;
                    index--;
                }
                else
                {
                    A[index]=B[j];
                    j--;
                    index--;
                }
            }
            while(j>=0)
            {
               A[index]=B[j];
               index--;
               j--;
            }
            return;
        }
    };
    
    int main()
    {
        int A[10]={1,3,5,7,9};
        int B[5]={2,4,6,8,10};
        Solution s;
        s.merge(A,5,B,5);
        for(auto a:A)
            cout<<a<<" ";
        cout<<endl;
    }
    

      

  • 相关阅读:
    闭包概念集合
    对象的基本方法
    webpack始出来
    elasticsearch性能调优
    elasticsearch 倒排索引学习
    elasticearch 归并策略
    更加详细的Log4net的配置
    第一篇博客关于Log4net的配置记录
    js数组小结
    javascript在不同的浏览器处理事件
  • 原文地址:https://www.cnblogs.com/wuchanming/p/4096422.html
Copyright © 2020-2023  润新知