2017-10-09 71 views
-2

我們必須使用數組作爲輸入,並且應該輸出數組中的第二個最大元素。數組中的第二大數字

例如,如果我們的輸入是[] = 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

如何調用該方法? – shmosel

+5

[「有人可以幫我嗎?」不是一個問題](http://meta.stackoverflow.com/q/284236)。您需要更具體地瞭解您需要的幫助。 –

回答

-3

檢查出來http://www.geeksforgeeks.org/find-second-largest-element-array/ 這很容易給谷歌的人。

+0

第一:這種類型的內容寧可是評論而不是答案。第二:請始終在答案中包含外部鏈接的基本內容。鏈接可能在未來中斷,那麼你的答案對未來的讀者就沒有幫助了。 – Zabuza

+0

是的。但對於使用「評論」,我需要50聲譽布魯。我會把它留在我的腦海裏 – Jurgiele

+0

我知道......但是你應該先嚐試在你發表評論作爲答案之前達到聲望。他們會被標記,刪除和倒票,不值得^^ – Zabuza

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,則它分配給第一索引; 我們在循環中檢查最大值是否爲空如果不是那麼最大值小於currnt索引如果是這樣我們分配第二個最大值等於最大值然後最大值等於當前索引。 如果最大值大於當前索引並且不爲空 然後我們最後檢查第二個最大值是否小於當前索引,如果是,我們爲它指定當前索引的值;

+0

你還可以提供你的代碼的解釋嗎?解釋很有幫助,特別是初學者。 – Zabuza

+0

如何將數組作爲用戶的輸入並對此進行測試? –

+0

cmon bro這可能是家庭作業,可能是高中/大學。您已經瞭解了掃描儀/緩衝線閱讀器,將其用於您的優勢。 – sdfbhg

相關問題