2017-02-24 3 views
-1

https://discuss.leetcode.com/topic/5056/any-shorter-o-1-space-solution を私はここからこのC++ソリューションを取り、あなたの場合はブロックの周りの中括弧を必要とするJava私のコードのバグを見つけることができませんでした。そのは、このテストケースのエラーを与える[0,0] [0,1]

public void setZeroes(ArrayList<ArrayList<Integer>> a) { 
    int colzero = 1; 

    int rows = a.size(); 
    int cols = a.get(0).size(); 

    for (int i = 0; i < rows; i++) 
    { 
     if (a.get(i).get(0) == 0) 
      colzero = 0; 

     for (int j = 1; j < cols; j++) 
     { 
      if (a.get(i).get(j) == 0) 
       a.get(i).set(0, 0); 
      a.get(0).set(j, 0); 
     } 
    } 

    for (int i = rows - 1; i >= 0; i--) { 
     for (int j = cols - 1; j >= 1; j--) { 
      if (a.get(i).get(0) == 0 || a.get(0).get(j) == 0) 
       a.get(i).set(j, 0); 
     } 
     if (colzero == 0) 
     { 
      a.get(i).set(0, 0); 
     } 
    } 
} 
+0

これはどういう意味ですか? – Mureinik

+0

エラーを推測するでしょうか? –

+0

デバッグヘルプ(「なぜこのコードは動作しませんか?」)には、目的の動作、特定の問題またはエラー、および質問自体に再現するのに必要な最短コードが含まれている必要があります。明確な問題文がない質問は、他の読者にとって有用ではありません。参照:http://stackoverflow.com/help/mcve – driconmax

答えて

0

に変換してみましたこれは2つの命令に分割されているからです(C++には1つしかありません)。

if(a.get(i).get(j)==0) { 
      a.get(i).set(0,0); 
      a.get(0).set(j,0); 
} 
関連する問題