您的位置:首页 > 编程语言 > C语言/C++

[leetcode-88]Merge Sorted Array(C语言)

2015-07-11 21:57 609 查看
问题描述:

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.

代码如下:0ms

[code]void merge(int* nums1, int m, int* nums2, int n) {
    int *tmp = (int *)malloc(sizeof(int)*(m+n));
    int nums1Index=0,nums2Index=0,tmpIndex = 0;

    while(nums1Index<m && nums2Index<n){
        if(nums1[nums1Index]<nums2[nums2Index]){
            tmp[tmpIndex++] = nums1[nums1Index++];
        }else{
            tmp[tmpIndex++] = nums2[nums2Index++];
        }
    }
    int i;
    if(nums1Index==m){
         for(i = nums2Index;i<n;i++)
            tmp[tmpIndex++] = nums2[i];
    }
    else if(nums2Index == n){
        for(i = nums1Index;i<m;i++)
            tmp[tmpIndex++] = nums1[i];
    }
    for(i = 0;i<m+n;i++)
        nums1[i] = tmp[i];

    free(tmp);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: