我们必须使用数组作为输入,并且应该输出第二个最大元素。
例如,如果我们的输入是[] = 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();
}
}
答案 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,我们为其分配当前索引的值;