LeeCode-Merge Sorted Array

来源:互联网 发布:2016香港经济发展数据 编辑:程序博客网 时间:2024/06/05 23:00

Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.

Note:
You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2. The number of elements initialized in nums1 and nums2 are m and n respectively.

void merge(int* nums1, int m, int* nums2, int n) {     int i=0;    if(m==0&&n!=0)    {        while(i<n)        {            nums1[i]=nums2[i];            i++;        }        return ;    }    if(n==0)        return ;        int *TempArray;    TempArray=(int*)malloc(sizeof(int)*(m+n));    int L=0;    int k1=0,k2=0;    while(k1<m&&k2<n)    {        if(nums1[k1]>=nums2[k2])        {            TempArray[L++]=nums2[k2++];        }        else        {            TempArray[L++]=nums1[k1++];        }    }    if(k1==m)    {        while(k2<n)        {            TempArray[L++]=nums2[k2++];        }    }    if(k2==n)    {        while(k1<m)        {            TempArray[L++]=nums1[k1++];        }    }    for(i=0;i<m+n;i++)    {        nums1[i]=TempArray[i];    }    free(TempArray);}


0 0