Leetcode118. 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) {
        //如果爲0 ,返回一個空的數組
      if(numRows<=0)
            return new ArrayList<>() ;
        List<List<Integer>>list=new ArrayList<List<Integer>>(numRows);
        List<Integer>pre0=new ArrayList<Integer>();
        pre0.add(1);
        list.add(pre0);
        //如果爲1  返回這個數組
        if(numRows==1)return list;
        List<Integer>pre=new ArrayList<Integer>();
        pre.add(1);
        pre.add(1);
        list.add(pre);
        if(numRows==2)return list;
        //此時可以累加計算其他數組中數值
        for (int i = 2; i <= numRows-1; i++) {
            List<Integer>cur=new ArrayList<Integer>(i);
            cur.add(1);
            for (int j = 0; j < i-1; j++) {
                cur.add(pre.get(j)+pre.get(j+1));   
            }
            cur.add(1);
            list.add(cur);
            pre=cur;            
        }
        return list;


    }
}

原題鏈接

發佈了71 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章