2011-05-15 81 views
1

Codingbat.com array question簡單的Java數組問題

這是一個簡單的數組的問題,不是功課,只是一般的知識,我採取另一種編程類明年秋天之前。

給定一個int數組,如果6顯示爲數組中的第一個或最後一個元素,則返回true。該數組將長度爲1或更長。

firstLast6({1, 2, 6}) → true 
firstLast6({6, 1, 2, 3}) → true 
firstLast6({3, 2, 1}) → false 

我的問題是你不應該使用任何循環來遍歷數組。如果我不知道輸入數據中的整數個數,那麼如何編寫它以避免索引越界異常?

我的解決方案---它的工作原理,但不完全是他們正在尋找的答案。

public boolean firstLast6(int[] nums) { 
    for (int i=0; i < (nums.length); i++) 
    { 

    if (i == 0 && nums[i] == 6) 
    { 
    return true; 
    } 

    else if (i == (nums.length - 1) && nums[i] ==6) 
    { 

    return true; 
    } 
    } 
    return false; 
} 
+0

我認爲你已經知道你已經知道數組長度了:'nums.length'然後最新的問題是什麼?第一個元素只使用nums [0],最後一個元素使用nums [nums.length-1]。 – codeomnitrix 2011-05-15 05:19:49

回答

4

你會使用length屬性來訪問的最後一個索引:

public boolean firstLast6(int[] nums) { 
    if (nums == null || nums.length == 0) { 
     return false; 
    } 

    return nums[0] == 6 || nums[nums.length - 1] == 6; 
} 

編輯:添加檢查是否爲空或空數組。

+0

不要忘記空陣列,你完成了 – 2011-05-15 05:22:46

+0

這比我使用的方法要容易得多。我不知道你可以像這樣返回一個布爾值。謝謝你的幫助。 – electricsauce 2011-05-15 05:26:36

+0

@彼得謝謝,更新。 @ user733952肯定!本質上你要返回邏輯條件的結果,這是一個布爾值。您可以將結果存儲在一個變量中,然後返回該結果,但對於如此短的代碼片段,此方法非常簡單。 – 2011-05-15 05:42:37

1

簡單地檢索第一個數組元素和最後一個數組元素。那就是:

nums[0] 
nums[nums.length - 1]; 
1

嘿,你不需要任何循環。所有你需要做的是:

if(array[0]==6 || array[array.length-1]==6){ 
    return true ; 
} 
    else{ 
    return false ; 
} 
0

這樣做的最緊湊和有效的表達會

public void firstLast(int[] a) { 
    return a.length > 0 && (a[0] == 6 || a[a.length-1] == 6); 
} 
0

輸出可以通過

if(array[0]==6||array[nums.length]==6) 
return true; 
else 
return false; 
0

這是一個完整的代碼很容易獲得這個問題,我希望這會幫到你

import java.util.Scanner; 


public class pair13 { 


public static void main(String[] args) { 

    int[] number=new int[6]; 



    Scanner ss=new Scanner(System.in); 

    for (int j = 0; j < number.length; j++) { 
     number[j]=ss.nextInt(); 

    } 

    firstLast6(number); 
    System.out.print(firstLast6(number)); 
} 



public static boolean firstLast6(int[] nums) { 

    if (nums[0]==6 || nums[nums.length-1]==6){ 
        return true; 
    } 
    else{ 

     return false; 

    } 
} 




} 
+2

嗨,請在代碼中添加一些解釋,因爲它有助於理解您的代碼。只有代碼答案是不被接受的。 – 2015-11-27 15:18:10