楊輝三角Java

什麼是楊輝三角?

楊輝三角,是二項式係數在三角形中的一種幾何排列,中國南宋數學家楊輝1261年所著的《詳解九章算法》一書中出現。在歐洲,帕斯卡(1623----1662)在1654年發現這一規律,所以這個表又叫做帕斯卡三角形。帕斯卡的發現比楊輝要遲393年,比賈憲遲600年。
在這裏插入圖片描述
這樣的三角形排列就被稱爲楊輝三角。

我們能發現一些規律:

  1. 每一行的第一個元素和最後一個元素是1
  2. 每一行除了第一個和最後一個元素,當前元素的值都爲上一行的當前元素和前一個元素之和。

發現這些規律我們就可以寫出我們的代碼了。

public class Test {
    public List<List<Integer>> generate(int numRows) {
    	//numRows是打印出第幾行
        List<List<Integer>> list = new ArrayList<>();
        if (numRows < 1) {
            //如果小於 1 行,直接返回
            return list;
        }

        //list 裏面裝的還是一個集合
        list.add(new ArrayList<>());
        //先添加一個1 相當於 [ [1] ]
        list.get(0).add(1);
        for (int i = 1; i < numRows; i++) {
            //要添加的新的一行
            List<Integer> row = new ArrayList<>();
            //保存要添加新的一行的上一行
            List<Integer> prevRow = list.get(i - 1);

            //先添加一個 1
            row.add(1);
            for (int j = 1; j < i; j++) {
                //添加上一行的當前位置元素和前一個元素的和
                row.add(prevRow.get(j - 1) + prevRow.get(j));
            }

            //添加每一行的最後一個 1
            row.add(1);
            //添加到集合中去
            list.add(row);
        }

        return list;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章