zoukankan      html  css  js  c++  java
  • LeetCode OJ--Merge Sorted Array *

    http://oj.leetcode.com/problems/merge-sorted-array/

    两个有序数组A和B的归并排序,将结果存到A中。因为已知两数组长度且A的数组足够大,所以倒着处理,如果正着的话,会有好多往后挪的操作。

    #include <iostream>
    using namespace std;
    
    class Solution {
    public:
        void merge(int A[], int m, int B[], int n) {
            if(m<0|| n<0)
                return;
            if(n == 0)
                return ;
            if(m ==0)
            {
                for(int i = 0;i<n;i++)
                    A[i] = B[i];
            }
            int a_pointer = m -1;
            int b_pointer = n-1;
            int c_pointer = m+n-1;
            while(a_pointer!=-1 && b_pointer!= -1)
            {
                while(a_pointer != -1 &&b_pointer!= -1 && A[a_pointer]>=B[b_pointer])
                {
                    A[c_pointer] = A[a_pointer];
                    c_pointer--;
                    a_pointer--;
                }
                while(a_pointer!= -1 && b_pointer != -1 &&A[a_pointer]<B[b_pointer] )
                {
                    A[c_pointer] = B[b_pointer];
                    c_pointer--;
                    b_pointer--;
                }
            }
            if(a_pointer == -1 && c_pointer!= -1)
                for(int i = 0;i<=c_pointer;i++)
                    A[i] = B[i];
            for(int i = 0;i<=m+n-1;i++)
                cout<<A[i]<<endl;
        }
    };
    
    int main()
    {
        Solution myS;
        int A[20] = {1,3,7,9,12,19,21};
        int B[20] = {2,4,5,6,8,10};
        myS.merge(A,3,B,0);
        return 0;
    }
  • 相关阅读:
    QQ群友在线/离线,如何测试?
    QQ好友在线/离线,怎么测试?
    用户体验测试一样很重要
    BUG,带给我的思考
    chrome DevTools
    HTTP、HTTPS
    Knockout双向绑定
    微信小程序
    git fetch 更新远程代码到本地仓库
    Git 同步远程仓库
  • 原文地址:https://www.cnblogs.com/qingcheng/p/3710938.html
Copyright © 2011-2022 走看看