如何在数组java中找到min数的最低索引?

时间:2017-10-23 06:08:38

标签: arrays algorithm minimum

除0外,如何找到分钟。数组中的数字:

myMethod()
{
    for (i - 0 to i - length)
    {
        int currentMin = value_at_first_Index;
        if(currentMin > value_at_first_Index)
            currentMin = value_at_first_Index;
    }
    return currentMin;
}

4 个答案:

答案 0 :(得分:1)

    int a[]={5,2,4,5,1,7,9};
    int lowestIndex=0;
    for(int b=1; b<7; b++)
    {
        if(a[b]<a[lowestIndex]) lowestIndex=b;
    }
    return lowestIndex;

答案 1 :(得分:1)

正确的解决方案:

int FindFirstMinIndex(array)
{
    int minIndex = 0;
    for (int i = 1; i<array.length; i++)
        if(array.elementAt(i) < array.elementAt(minIndex))
            minIndex=i;
    return minIndex;
}

工作原理:

  1. 首先假设第一个元素(索引0)是最小值:
    • int minIndex = 0;
  2. 从第二个元素循环到数组的其余部分:
    • for (int i = 1; i<array.length; i++)
    • 从第二个(索引1)元素而不是第一个(索引0)开始,因为我们已经假设如果我们找不到任何值较低的值,则第一个将是最小值,并且无需在循环内将其与自身进行比较。
  3. 如果循环当前索引(i)中元素的值小于目前为止记录的最小索引处元素的值:
    • if(array.elementAt(i) < array.elementAt(minIndex))
  4. 然后找到新的最小值。将其索引指定为新的最小索引:
    • minIndex=i;
  5. 在循环之后,无论索引记录到minIndex变量,都保证是整个数组中找到的最小值的第一个索引(如果是重复值)。所以返回那个索引:
    • return minIndex;

答案 2 :(得分:0)

解决方案

public int getMin (int[] arr) { int currentMin = arr[0]; for (int i = 0; i < arr.length; i++){ if (arr[i] != 0){ currentMin = Math.min(arr[i], currentMin); }}return currentMin; }

答案 3 :(得分:-1)

将currentMin移出for循环

 public int myMethod (int[] array) {
    int currentMin = array[0]; 
    for (int i = 0; i < array.length; i++){
        if (array[i] != 0 && array[i]>currentMin)
               currentMin=array[i];
                    }
    return currentMin;
}