【LeetCode】Pascal's Triangle解題レポート

2508 ワード

【LeetCode】Pascal’s Triangle解題報告
[LeetCode]
https://leetcode.com/problems/pascals-triangle/
Total Accepted: 83023 Total Submissions: 247907 Difficulty: Easy
Question
Given numRows, generate the first numRows of Pascal’s triangle.
For example, given numRows = 5, Return
[
     [1],
    [1,1],
   [1,2,1],
  [1,3,3,1],
 [1,4,6,4,1]
]

Ways
楊輝三角.
知能指数よ!知能指数!大学1年生の問題が1時間も悩んでいた!
最後にエラーの原因を見つけたのは、10行目のtemp=new ArrayList()である.前に書いたのはtempです.clear(); このような問題はclear()の後もそのtempが使われているということで、次回tempを修正すると元の入れたものを変更してしまうということです.
だからjavaの基礎はとても重要です!
public class Solution {
    public List<List<Integer>> generate(int numRows) {
        if(numRows<=0)  return new ArrayList();
        List<List<Integer>> answer=new ArrayList();
        List<Integer> temp=new ArrayList();
        temp.add(1);
        answer.add(temp);
        if(numRows==1)  return answer;
        for(int i=2;i<=numRows;i++){
            temp=new ArrayList();
            for(int j=0;j<i;j++){
                if(j==0 || j==i-1){
                    temp.add(1);
                }else{
                    temp.add(answer.get(i-2).get(j-1) + answer.get(i-2).get(j));
                }
            }
            answer.add(temp);
        }
        return answer;
    }
}

AC:2ms
Date
2016年05月8日