首页 > 其他 > 详细

LeetCode 88: Merge Sorted Array

时间:2020-05-10 11:58:31      阅读:32      评论:0      收藏:0      [点我收藏+]
/**
 * 88. Merge Sorted Array
 * 1. Time:O(m+n)  Space:O(m)
 * 2. Time:O(m+n)  Space:O(1)
 */

// 1. Time:O(m+n)  Space:O(m)
class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int[] tmp = Arrays.copyOfRange(nums1,0,m);
        int i=0,j=0;
        for(int k=0;k<nums1.length;k++){
            if(i>=m)
                nums1[k] = nums2[j++];
            else if(j>=n)
                nums1[k] = tmp[i++];
            else if(tmp[i]<nums2[j])
                nums1[k] = tmp[i++];
            else
                nums1[k] = nums2[j++];
        }
    }
}

// 2. Time:O(m+n)  Space:O(1)
class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int i=m-1,j=n-1,k=m+n-1;
        while(i>=0 && j>=0){
            nums1[k--] = nums1[i]>=nums2[j]? nums1[i--]:nums2[j--];
        }
        while(j>=0)
            nums1[k--] = nums2[j--];
    }
}

LeetCode 88: Merge Sorted Array

原文:https://www.cnblogs.com/AAAmsl/p/12862431.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!