gpt4 book ai didi

java - 合并两个数组时出错

转载 作者:太空宇宙 更新时间:2023-11-04 14:00:15 25 4
gpt4 key购买 nike

我有两个已排序的数组 arr1 和 arr2,我正在尝试将这两个数组合并到另一个数组“输出”中。但问题是,如果第一个数组耗尽,即数组 arr1 被完全使用,那么“i”的值将大于数组的长度,因此在下一次迭代 arr[i] 时会出错。可以采取什么措施来避免这种情况?

    int i=0;
int j=0;

for(int k=0;k<output.length;k++) {

if(arr1[i]<arr2[j]) {
output[k]=arr1[i];
i++;
}


else{
output[k]=arr2[j];
j++;
}

}

最佳答案

您需要检查数组是否已耗尽:

int i=0;
int j=0;

for(int k=0;k<output.length;k++) {
if(i < arr1.length && j < arr2.length) {
// both arrays still have unused elements
if (arr1[i]<arr2[j]) {
output[k]=arr1[i];
i++;
} else {
output[k]=arr2[j];
j++;
}
} else if (i < arr1.length) {
// only the first array has unused elements
output[k]=arr1[i];
i++;
} else if (j < arr2.length) {
// only the second array has unused elements
output[k]=arr2[j];
j++;
}
}

关于java - 合并两个数组时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29362022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com