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

合并两个有序的数组

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--];
        }
    }
}

全部评论

相关推荐

能干的三文鱼刷了10...:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
06-26 22:20
门头沟学院 Java
码农索隆:让你把简历发给她,她说一些套话,然后让你加一个人,说这个人给你改简历,然后开始卖课
我的求职精神状态
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务