美文网首页
Leetcode 88. Merge Sorted Array

Leetcode 88. Merge Sorted Array

作者: persistent100 | 来源:发表于2017-07-29 09:17 被阅读0次

    题目

    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,j=0,k=0;
        for(i=m+n-1;i>n-1;i--)
        {
            nums1[i]=nums1[i-n];
        }
        i=n;
        while(i<m+n&&j<n)
        {
            if(nums1[i]<=nums2[j])
            {
                nums1[k]=nums1[i];
                i++;
                k++;
            }
            else
            {
                nums1[k]=nums2[j];
                j++;
                k++;
            }
        }
        while(i<m+n)
        {
            nums1[k]=nums1[i];
            i++;
            k++;
        }
        while(j<n)
        {
            nums1[k]=nums2[j];
            j++;
            k++;
        }
    }
    

    相关文章

      网友评论

          本文标题:Leetcode 88. Merge Sorted Array

          本文链接:https://www.haomeiwen.com/subject/lguqlxtx.html