我如何找到数组中的第二大数字?

时间:2019-04-04 02:11:34

标签: java

我在弄清楚如何找到数组中的下一个最大数字时遇到了麻烦。例如;如果我从数组[1,2,3,4,5,7,4,6​​]中得到数字5,我怎么发现6是下一个最大数字

2 个答案:

答案 0 :(得分:0)

基本上这里有两个选项:

  • 您可以首先对该数组进行 sort ,例如,使用java.utils.Arrays提供的sort方法。然后,您只需遍历数组,首先搜索该给定的数字。当您发现该数字时,遇到的下一个数字(不是您给定的数字)是下一个最大的数字。
  • 或更有效的方法是:迭代数组,并检查每个条目“它大于我给定的数字吗?”如果是这样,您会记住该值。下次遇到这样的“给定数字较大”时,请将其与找到的最后一个数字进行比较,并保留较小的数字。换句话说:您只需在数组中搜索最小数目,但必须包括“大于给定数目”的条件。

请将此视为自己进行编码的灵感。您正是通过这样做来学习编程,而不是将繁重的工作委派给其他人。

答案 1 :(得分:-1)

我认识你了

int numGiven = 0;

    //assign number that is given.
    numGiven = 5;

    int nextHighest = 0;

    int[] arrayNum = {1,2,3,4,5,7,4,6};

    boolean nextHighestNumberIsFound = false;

    boolean endOfLoop = false;

    while(endOfLoop == false && nextHighestNumberIsFound == false)
    {
        ++numGiven;
        for(int x = 0; x < arrayNum.length; x++) 
        {
            if(numGiven == arrayNum[x])
            {
                nextHighestNumberIsFound = true;
                endOfLoop = true;
                nextHighest = arrayNum[x];
                x += arrayNum.length;
            }
        }

        endOfLoop = true;
    }

    if(nextHighest != 0){
        System.out.println(nextHighest);
    }
    else
    {
        System.out.println("NumberSpecified is too high");
    }