数组

时间:2017-10-09 21:10:09

标签: java arrays

我们必须使用数组作为输入,并且应该输出第二个最大元素。

例如,如果我们的输入是[] = 10 20 30 40 50 60 70,程序应该返回60.我听说这是一个非常基本的问题,但我是java编程的新手,无法弄明白

此外,所有元素都是独一无二的。

到目前为止我已经尝试过了,不知道如何继续:

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution {


     public static int SecondLargest(int[] arr) {
        int maxValue = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if (arr[i] > maxValue) {
                maxValue = arr[i];
            }
        }
        return maxValue;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int i = sc.nextInt();

    }
}

1 个答案:

答案 0 :(得分:0)

   int largest = null;
   int secondLargest = null;

   for(int i =0; i < array.length; i++)
   {
      if(largest = null)
      {
        largest = array[i];

      }
      else if(array[i] > largest)
     { 
         secondLargest = largest;
         largest = array[i];
      }
      else if(secondLargest == null || array[i] > secondLargest)
      {
        secondLargest = array[i];
      }
   } 
   return secondLargest

---说明 我们开始时都是null, 我们检查循环,如果最大值为null,则将其分配给第一个索引; 我们检查循环中是否最大值为null如果不是那么如果最大值小于currnt索引,那么我们将第二个Largest指定为最大值,然后将最大值等于当前索引值。 如果最大值大于当前索引且不为null 然后,我们最后检查第二个最大值是否小于当前索引,如果是,则为null,我们为其分配当前索引的值;