2017-02-15 3 views
0

https://www.interviewbit.com/problems/array_2d/リンク)のための出力予測[[1、2、3、4]を、 [5,6,7,8]、[9,10,11,12]]。2D Arraylist-コード

ArrayList<ArrayList<Integer>> performOps(ArrayList<ArrayList<Integer>> A) { 
     ArrayList<ArrayList<Integer>> B = new ArrayList<ArrayList<Integer>(); 
     for (int i = 0; i < A.size(); i++) { 
      B.add(new ArrayList<Integer>()); 

      for (int j = 0; j < A.get(i).size(); j++) { 
       B.get(i).add(0); 
      } 

      for (int j = 0; j < A.get(i).size(); j++) { 
       B.get(i).set(A.get(i).size() - 1 - j, A.get(i).get(j)); 
      } 
     } 
     return B; 
} 

誰でも理解していただけますか?

+0

[なぜ誰かが私を助けることができますか?実際の質問ではありませんか?](http://meta.stackoverflow.com/q/284236) –

答えて

0

出力はあなたがA.Thatを初期化しようとしなければならない

4 3 2 1 
8 7 6 5 
12 11 10 9 

なりAのケースではありませんhere.The値は

1 2 3 4 
5 6 7 8 
9 10 11 12 

し、さらにコードの出力でありますあなたが何か他のものが必要な場合に手を貸してください。

0

1つまたは2つのループに変数の値を代入してみてください。そのような質問を理解しやすく、可能であればエディタでコード化し、コードを一度に1つずつデバッグすることが容易になります。

私は1つのループを試みました。

ArrayList<ArrayList<Integer>> performOps(ArrayList<ArrayList<Integer>> A) { 
     ArrayList<ArrayList<Integer>> B = new ArrayList<ArrayList<Integer>>(); 
     //A.size() is 3 
     for (int i = 0; i < 3; i++) { 
      B.add(new ArrayList<Integer>()); 

      //First Loop i = 0; A.get(0).size() = 4; Four elements in first index of array list 
      for (int j = 0; j < 4; j++) { 
       B.get(0).add(0); //Setting all elements to zeros 
      } 

      for (int j = 0; j < 4; j++) { 
       B.get(0).set(4 - 1 - j, A.get(0).get(j)); 
       //For j = 0 
       // B.get(0).set(3, 1); //A.get(0).get(0) = 1 

       //For j = 1 
       B.get(0).set(2, 2); //A.get(0).get(1) = 2 

       //For j = 2 
       B.get(0).set(1, 3); // A.get(0).get(2) = 3 


       //For j = 3 
       B.get(0).set(0, 4); //A.get(0).get(3) = 4 
      } 

      //At the end of above loop B=[[4, 3, 2 ,1]] 
     } 
     return B; 
} 

ところで、出力は、内側の各コレクション要素が逆の順序で2次元のコレクションになります。

関連する問題