2009-11-06 61 views
0

我有int類型的陣列如何檢查數組末尾

矩陣[] []

,它具有0值和1

000000000 
101010111 
000010100 
110011001 

的值不同以上,但是這是一個隨機的例子。

我需要做的是,

遍歷當柱= 0和行= 0加1行到循環

如果找到一個其添加到變量

第一行

當我到達行的末尾,我需要然後去下行列0行= 0加1列以獲得循環

然後我需要檢查我已添加到總和變量是% 2 = 0

然後我需要檢查第1分1列

,並重復所有

我有被確定時,我已經到了一個排的末端的problerm,這是怎麼計算出來的?

for(int row = 0; row < matrix.length; row++){ 
     if(matrix[columns][row] == 1){ 
      sum ++; 
      if(i am at the end of the row){ 
       //continue with other steps here 

回答

5
for (int row = 0; row < matrix.length; row++) { 
    int sum = 0; 
    for (int col = 0; col < matrix[row].length; col++) { 
     if (matrix[row][col] == 1){ 
     sum ++; 
     } 
    } 
    // reached the end of the row 
} 
// reached the end of the array 

所以每行(第一行),你遍歷每一行中的列(第二行)。這將覆蓋2d數組中的所有元素。你知道你已經到達了行的末尾,因爲你已經用完了列(並退出了內部循環)。

3

不是真的準確的回答你的問題,但退一步(不知道在你的代碼的上下文中)在我看來,你可能想使用一個BitSet而不是0和1的陣列。它使用較少的內存,並有一堆方便的方法(通常也比你自己編寫的代碼更快)。計算你似乎在做的設置比特數是BitSet.cardinality()