[leetcode] Merge Sorted Array

来源:互联网 发布:无网络传奇单机破解版 编辑:程序博客网 时间:2024/05/02 00:44

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 to hold additional elements from B. The number of elements initialized in A and B are m and n respectively.

class Solution {public:    void merge(int A[], int m, int B[], int n) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        int i,j,k;        int *A1=new int[m];        for(i=0 ; i<m ; i++)            A1[i]=A[i];        for(i=0,j=0,k=0;i<m&&j<n;k++){            if(A1[i]<B[j])                A[k]=A1[i++];            else                A[k]=B[j++];        }        int *p=i==m?B+j:A1+i;        for(i=k ; i<m+n;)            A[i++]=*p++;    }};