首页 > 代码库 > 118. Pascal's Triangle

118. Pascal's Triangle

118. Pascal‘s Triangle

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]
]


public class Solution {
    /*
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> res = new ArrayList<>();
        if(numRows == 0) return res;
        List<Integer> member = new ArrayList<>();
        member.add(1);
        res.add(member);
        if(numRows == 0) return res;
        for(int i = 1; i< numRows ; i++){
            List<Integer> newMember = new ArrayList<>();
            newMember.add(1);
            for(int j = 0; j < member.size() -1; j ++){
                newMember.add(member.get(j) + member.get(j+1));
            }
            newMember.add(1);
            res.add(newMember);
            member = newMember;
        }
        return res;
    } */
    

    //   better way
    //    set(int index, E element)  Replaces the element at the specified position in this list with the specified element (optional operation).
    
     public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> res = new ArrayList<>();
        if(numRows == 0) return res;
        List<Integer> member = new ArrayList<>();
        for(int i = 0; i< numRows ; i++){
            member.add(0,1); //每次在首度加1
            for(int j = 1 ; j < member.size() -1 ; j++){
                member.set(j, member.get(j) + member.get(j +1));
            }
            System.out.println(member);
            res.add(new ArrayList<Integer> (member));
        }
        return res;
     }
}

 

118. Pascal's Triangle