LeetCode | 88. 合并两个有序数组

88. 合并两个有序数组

OJ链接
LeetCode | 88. 合并两个有序数组_第1张图片

  • 将两个变量分别指向最后的位置,谁大谁就放到nums1的位置上~~
    LeetCode | 88. 合并两个有序数组_第2张图片

  • 但是有一个数组已经放完了,那个数组就可以直接放入另一个数组中,那么这个判断条件是什么呢?

  • i2<0结束了,不需要处理

  • i1<0结束了,需要处理
    LeetCode | 88. 合并两个有序数组_第3张图片

  • 代码如下:

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n){
    int i1 = m-1,i2 = n-1;
    int j = m+n-1;
    while(i1>=0&&i2>=0)
    {
        if(nums1[i1] > nums2[i2])
        {
            nums1[j--] = nums1[i1--];
        }
        else
        {
            nums1[j--] = nums2[i2--];
        }
    }
    
    while(i2>=0)
    {
        nums1[j--] = nums2[i2--];
    }
}

你可能感兴趣的:(LeetCode,leetcode,算法)