2015-09-14 43 views
-1

所以我的問題是,在我的代碼中,它說int min = a2 [0] [0]爲什麼它必須是這樣的,而不是使用int min = 0;當我有它打印出0,但[0] [0]它打印出正確的答案..所以我只是好奇,爲什麼需要使用?謝謝! :)爲什麼我必須使用[0] [0]與二維數組爲int min而不是僅僅= 0

public static int min2DArray(int[][] a2) { 
     int min = a2[0][0]; 
     for (int row = 0; row < a2.length; row++) { 
      for (int column = 0; column < a2[row].length; column++){ 
       if (a2[row][column] < 1){ 
        min = a2[row][column]; 
       } 
      } 
     } 
     return min; 
    } 

回答

0

如果您的二維數組有任何負值,int min = 0將是不準確的。實際上,如果大於0的值是實際的最小值,那麼代碼也不會起作用。你只需要一個幸運的情況下你min是0

+0

以及最低人數10所以你猜這就是爲什麼呵呵?那麼從int min = 0到int min的差別究竟是什麼?min = a2 [0] [0] – ThePyroMark

+1

只要數組中的值較小,min的初始值就是無關緊要的。只有當它們全部變大時,該算法纔會更新'min'(假設與'min'比較而不是1)。真正的問題是與1達成的比較。 – Andreas

+1

@Andreas嘿,別假裝成我。 ;-) – Andreas

1

你的代碼中有一個錯誤:如果您的數據包含3, 7, 9和初始化

if (a2[row][column] < min){ 

if (a2[row][column] < 1){ 

min0,那麼它們都不會低於初始值,因此得到0

可以初始化minInteger.MAX_VALUE,你會被罰款,也可以將其初始化爲第一值,即

int min = a2[/*row=*/0][/*column=*/0]; 
+0

感謝您的收穫和解釋。很好! +1 – ThePyroMark

相關問題