【问题标题】:second largest digit in array [duplicate]数组中的第二大数字[重复]
【发布时间】:2018-03-21 04:05:02
【问题描述】:

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

例如,如果我们的输入是 a[]=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();

    }
}

【问题讨论】:

标签: java arrays


【解决方案1】:
   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

---解释 我们从两者都为空开始, 我们在循环中检查最大值是否为空,然后将其分配给第一个索引; 我们在循环中检查最大是否为空,如果不是,那么如果最大小于当前索引,那么我们将第二个最大分配为等于最大然后最大等于当前索引。 如果最大的大于当前索引并且不为空 然后我们最后检查第二大的是否小于当前索引,如果是,我们将其分配给当前索引的值;

【讨论】:

  • 你能不能解释一下你的代码?解释很有帮助,尤其是初学者。
  • 如何将数组作为用户的输入并对其进行测试?
  • cmon bro,这可能是家庭作业,可能是高中/大学。您已经了解了扫描仪/缓冲线阅读器,请充分利用它。
猜你喜欢
  • 2018-09-22
  • 2020-05-27
  • 2017-01-04
  • 2011-02-06
  • 1970-01-01
  • 1970-01-01
  • 2021-04-01
  • 2019-08-05
  • 2014-02-20
相关资源
最近更新 更多