为了账号安全,请及时绑定邮箱和手机立即绑定

查找数组中最小元素的索引(Java)

查找数组中最小元素的索引(Java)

月关宝盒 2021-06-18 15:04:47
我正在尝试编写一个将整数数组作为参数并返回数组中最小元素的索引的代码块。此外,如果列表是空列表,该函数应返回 -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) 


查看完整回答
反对 回复 2021-06-30
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

您收到 IndexOutOfBoundsException 是因为您试图从行中的空数组中检索值:

int min = array[index];

只需使用以下命令检查此行之前的数组是否为空:

 if(array.length < 1) return -1;


查看完整回答
反对 回复 2021-06-30
  • 3 回答
  • 0 关注
  • 285 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信