题解 | #合并两个有序的数组#

合并两个有序的数组

https://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665

import java.util.*;
public class Solution {
    public void merge(int A[], int m, int B[], int n) {
        int i = m-1;
        int j = n-1;
        //新数组的指针
        int k = m+n-1;
        //任意一个数组遍历结束
        while(i >= 0 && j >= 0){
		  	//这里面很关键,首先注意判断范围,就是>=0,因为j--,是先用到j,再执行--
		  	//因此会用到等于0的时候,再执行-1,不符合
		  	//然后赋值这里,是用到了谁,谁-1,不是都要-1,因此j--操作应该在赋值进行,而不是在比较处进行
		  	//否则,不应该-1的,都-1了
            A[k--] = B[j] >= A[i]? B[j--]:A[i--];
        }
        //A数组没有遍历完,直接就在里面,所以只需要把B数组装进去就行
        while(j >= 0){
            A[k--] = B[j--];
        }
    }
}

全部评论

相关推荐

11-08 17:36
诺瓦科技_HR
点赞 评论 收藏
分享
贪食滴🐶:你说熟悉扣篮的底层原理,有过隔扣职业球员的实战经验吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务