1

2次元配列内にあるゼロの数を数えるために、私よりも速い方法があるかどうかを知りたいです。これが私が今やっている方法です。

static int zeroInside = 0;
static int[][] board = new int[][]{
          {5,0,0,0,1,0,0,7,0},
          {1,0,0,0,8,0,3,0,0},
          {0,6,0,2,3,0,0,5,0},
          {2,5,0,7,0,0,6,3,0},
          {9,0,0,3,0,1,0,0,5},
          {0,3,1,0,0,8,0,2,7},
          {0,2,0,0,9,5,0,1,0},
          {0,0,9,0,6,0,0,0,2},
          {0,8,0,0,7,0,0,0,6}}; 
static void initialZeroCounting(){
     for (int outer = 0; outer < board.length;outer++){
         for(int inner = 0; inner < board[outer].length; inner++){
             if (board[outer][inner] ==0){
                 zeroInside++;
             }
         }
     }

このスニペットのさまざまなバリエーションを試しましたが、結果はありませんでした。

     List<int[]> list = Arrays.asList(board);
     int count = Collections.frequency(list, 0);
4

4 に答える 4

5

すべての要素を検査して 0 かどうかを確認する必要があるため、すべての要素を反復処理する以外に方法はありません。

于 2013-11-06T13:54:47.537 に答える