【发布时间】:2015-03-31 06:28:06
【问题描述】:
我有两个排序数组 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++;
}
}
【问题讨论】:
-
验证两个数组的长度。仅在存在时使用该值。 if ( arr1.length() > i ) ....
-
像这样改变你的第一个 if 条件:
if(arr1.length() > i && arr1[i]<arr2[j]) -
感谢很多人成功了 :)