【问题标题】:How to find lowest index of min number in array java?如何在数组java中找到最小数的最低索引?
【发布时间】:2018-04-03 14:55:15
【问题描述】:

除了 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;
}

【问题讨论】:

    标签: arrays algorithm minimum


    【解决方案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;
    

    【讨论】:

    • lowestIndex 变量的描述性 有轻微错误。 最低索引总是0。对变量更正确的描述是minimum's index;所以变量的更正确名称是minIndex,就像我的回答一样。 --- 除此之外,这是迄今为止唯一正确且可读的答案(除了我自己的)......
    【解决方案2】:

    正确解决方案:

    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&lt;array.length; i++)
      • 从第二个(索引1)元素而不是第一个(索引0)开始,因为我们已经假设如果我们没有找到更低的值,第一个将是最小值,并且不需要比较它与自身在循环内。
    3. 如果循环当前索引处的元素值 (i) 小于到目前为止记录的最小值索引处的元素值:
      • if(array.elementAt(i) &lt; array.elementAt(minIndex))
    4. 然后找到了一个新的最小值。将其索引分配为新的最小值索引:
      • minIndex=i;
    5. 在循环之后,minIndex 变量中记录的任何索引都保证是整个数组中找到的最小值的第一个索引(在重复值的情况下)。所以返回那个索引:
      • return minIndex;

    【讨论】:

      【解决方案3】:

      解决方案

      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; }
      

      【讨论】:

        【解决方案4】:

        将 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;
        }
        

        【讨论】:

          猜你喜欢
          • 2019-08-21
          • 2019-01-12
          • 2011-06-25
          • 1970-01-01
          • 1970-01-01
          • 2021-04-28
          • 1970-01-01
          • 2021-02-10
          • 1970-01-01
          相关资源
          最近更新 更多