我正在尝试编写一个将整数数组作为参数并返回数组中最小元素的索引的代码块。此外,如果列表是空列表,该函数应返回 -1。到目前为止,我有,public static int indexOfSmallest(int[] array){ int index = 0; int min = array[index]; for (int i = 1; i < array.length; i++){ if (array[i] <= min){ min = array[i]; index = i; } } return index;}但是,我收到此错误并且不确定我需要修复什么。任何帮助将非常感激。谢谢你。
3 回答
不负相思意
TA贡献1777条经验 获得超10个赞
该错误是不言自明的。您无法处理空输入数组的情况。
public static int indexOfSmallest(int[] array){
// add this
if (array.length == 0)
return -1;
int index = 0;
int min = array[index];
for (int i = 1; i < array.length; i++){
if (array[i] <= min){
min = array[i];
index = i;
}
}
return index;
}
如果最小元素出现多次,并且您想返回其第一次出现的索引,请将您的条件更改为:
if (array[i] < min)
白猪掌柜的
TA贡献1893条经验 获得超10个赞
您收到 IndexOutOfBoundsException 是因为您试图从行中的空数组中检索值:
int min = array[index];
只需使用以下命令检查此行之前的数组是否为空:
if(array.length < 1) return -1;
添加回答
举报
0/150
提交
取消