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

合并两个有序的数组

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

package com.wuqg5518.JavaSE;

/**

  • @author wuqg5518
  • @create 2022-03-19 11:14
  • 合并两个数组:给出一个有序的整数数组 A 和有序的整数数组 B ,请将数组 B 合并到数组 A 中,变成一个有序的升序数组.
  • 解题思路:从后往前遍历数组,比较两个数组的最大值,并将最大值放在A数组的最后。 */

public class mergeTwoArray {

public void merge(int A[], int m, int B[], int n) {
    int i=m-1;  //A数组有数据的最大下标
    int j=n-1;  //B数组的最大下标
    int len = m+n;  //A数组的最大下标
    int count = 1;  //计数器
    for(;i>=0 && j>=0;){//情况一:两个数组都有值
        if(A[i]>=B[j]){
            A[len-count] = A[i];
            i--;
        }else{
            A[len-count] = B[j];
            j--;
        }
        count++;
    }
    if(j>=0){//情况二:只有B数组有值
        for(int k=j;k>=0;k--){
            A[len-count] = B[k];
            count++;
        }
    }

    //情况三:只有A数组有值,直接返回
    System.out.println(A);
}

}

全部评论

相关推荐

没hc还海面!呜呜,避雷
回收旧报纸:没有海面吧,我做完笔试有一个多月了,还没消息
点赞 评论 收藏
分享
10-09 16:12
门头沟学院 Java
帅宇殿下:佬,简历写的什么
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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