セルの数値アルゴリズム無限の奇数

あなたは、各セルの値は0であり、当初、n行m列の行列を与えます。

そうでなければインデックス配列インデックス、インデックス[I] = [RI、CI] CIおよびRI示す指定された行と(0から番号付け)カラム。

あなたは、与えられた行と列プラス1のすべてのセルの各々の対[RI、CI]の値を確認する必要があります。

してください指定されたすべての増分リターン行列「奇数セルの値」の数を実行した後のインデックス。

例1:

入力:N = 2、M = 3 、インデックス= [0,1]、[1,1]
出力:6
説明:マトリックスは[0,0,0]、[0,0,0の始まりであります]]。
最初の増分の後に得た[1,2,1]、[0,1,0]]。
最終的なマトリックスは、[1,3,1]、[1,3,1]、奇数6を有しています。

例2:

入力:N = 2、M = 2 、インデックス= [1,1]、[0,0]
出力:0
説明:最終的なマトリックスである[2,2]、[2,2]、全く存在しません奇数。

ヒント:

1 <= N <= 50
1 <= M <= 50
1 <= indices.length <= 100
0 <=指数[I] [0] <N
、0 <=指数[I] [1] <M

アイデア:

、各位置の値を算出する2次元配列を作成
指数横断
行==インデックスを[I] [0] 、 + = 1;
カラム==インデックスの数[I] [1] 、 + = 1;
最後トラバーサル分析%2 == 0、カウント数

ソリューション:

class Solution {
    public int oddCells(int n, int m, int[][] indices) {
        int[][] res=new int[n][m];
        for(int[] indice: indices){
            for(int i=0; i<m; i++){
               res[indice[0]][i]+=1;
            }
            for(int j=0; j<n; j++){
               res[j][indice[1]]+=1;
            }
        }
        int count=0;
        for(int i=0; i<res.length; i++){
            for(int j=0; j<res[i].length; j++){
               count+=res[i][j]%2==0?0:1;
            }
        }
        return count;
    }
}
公開された129元の記事 ウォンの賞賛239 ・は 20000 +を見て

おすすめ

転載: blog.csdn.net/qq_33709508/article/details/103942886
おすすめ