首页 > 牛课题霸NC22解析Java描述
头像
六娃lw
编辑于 2020-12-15 19:28
+ 关注

牛课题霸NC22解析Java描述

牛课题霸NC22解析Java描述

题目

链接地址
给出两个有序的整数数组A和B,其中A足够大,合并两个数组至A中,使得合并后仍然有序。

解析

思路:

有点像归并排序中合并两个排序数组,但是这里有一点不同,就是A数组范围够大,因此我们可以不开辟额外的数组来存储结果。
从前往后归并如果在原数组上进行,会出现元素覆盖的情况,考虑从后往前原地归并,这样就不会出现该问题。

Java描述

public class Solution {
    public void merge(int A[], int m, int B[], int n) {
        int i = m - 1;
        int j = n - 1;
        int p = m + n - 1;
        while(i >= 0 && j >= 0){
            A[p--] = A[i] >= B[j] ? A[i--] : B[j--]; 
        }
        while(j >= 0){A[p--] = B[j--];}
    }
}

全部评论

(5) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

近期精华帖

热门推荐