java - 如何保持这个合并数组方法在边界内?

标签 java arrays indexing merge indexoutofboundsexception

我必须编写一种方法,将两个已经按升序排列的数组组合成一个按升序排列的数组。然而,它们的长度不同,因此递增会使它们超出范围。

Visualization

int[] mergeTwo(int[] nums1, int[] nums2) {
      int[] arr = new int[nums1.length+nums2.length];

  int index_1=0;
  int index_2=0;
  int content_1=0;
  int content_2=0;
  for(int steps=0;steps<arr.length&&index_1<nums1.length&&index_2<nums2.length;steps++) {
    content_1=nums1[index_1];
    content_2=nums2[index_2];

    if(content_1<content_2) {

      arr[steps]=content_1;
      index_1++;

    }

    if(content_1>content_2) {

      arr[steps]=content_2;
      index_2++;

    }

  }

  return arr;  
}

我需要修复什么才能使此方法发挥作用?非常感谢!

最佳答案

跳出循环后,将剩余元素(来自数组之一)添加到最终数组

while(index_1  < nums1.length)
{

    arr[steps] = nums1[index_1];
    index_1++;
    steps++;
}
while(index_2  < nums2.length)
{
    arr[steps] = nums2[index_2];
    index_2++;
    steps++;
}

关于java - 如何保持这个合并数组方法在边界内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28248145/

相关文章:

Java - 获取触发 mouseEvent 的按钮的名称

一组字符串的Java对象内存大小

临时表中的 PostgreSQL 索引

MongoDb 索引全文搜索

java - 需要一些好的 iBatis 教程

java - 使用 BufferedImage 创建非常大的图像文件,奇怪的问题取决于编译和计算机(-Xmx 不起作用)

arrays - 如何向 Node JS 中的现有 JSON 文件数组添加值

python - 如何在 numpy 数组中同时允许 float 和数组

javascript - 如何遍历具有数组的对象并对值求和?

mysql - 可以跨表索引吗?