关闭

Merge Sorted Array

162人阅读 评论(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 nums1and nums2 are m and n respectively.

这种需要in place操作的大多需要从尾部开始,这样可以减少数据需要移动的次数,同时不会影响前面的数据。

public class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        while(m >= 1 && n >= 1){
            if(nums1[m - 1] >= nums2[n - 1]){
                nums1[m + n - 1] = nums1[m - 1];
                m--;
            }
            else if(nums1[m - 1] < nums2[n - 1]){
                nums1[m + n - 1] = nums2[n - 1];
                n--;
            }
        }
        
        while(n >= 1){
            nums1[n - 1] = nums2[n - 1];
            n--;
        }
    }
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:7859次
    • 积分:823
    • 等级:
    • 排名:千里之外
    • 原创:78篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条
    文章分类