LeetCode Merge Sorted Array

来源:互联网 发布:linux新建 删除文件夹 编辑:程序博客网 时间:2024/05/16 08:41

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 arem andn respectively.

       联想归并排序,常规归并排序是再分配一个m+n的数组temp,把A B归并到temp中,再把temp复制给A。

       这里,确定了A的大小不小于m+n,可以从尾向前归并,这样不需要temp数组,可以直接在A中进行。

class Solution {public:    void merge(int A[], int m, int B[], int n) {        if(m<=0&&n<=0)return;        int k=m+n-1;        m--;n--;        while(m>=0&&n>=0){            if(A[m]>=B[n])A[k--]=A[m--];            else A[k--]=B[n--];        }        while(m>=0)A[k--]=A[m--];        while(n>=0)A[k--]=B[n--];    }};

0 0
原创粉丝点击