1. 程式人生 > 其它 >leetcode 刷題 楊輝三角

leetcode 刷題 楊輝三角

技術標籤:leetcode刷題

純粹是自己寫的嗷,發現了一個規律,第i行,除了首尾為1,其他各個位,假設其下標為i,則一定是由上一行下標為i-1,i的元素嘉和得到,根據此觀察編寫程式。

class Solution {
    public List<List<Integer>> generate(int numRows) {
    	List<List<Integer>> list = new ArrayList<List<Integer>>();
    	for(int i = 1; i < numRows + 1; i++) {
    		System.out.println("執行了"+i+"行");
    		list.add(getNowRow(i, list));
    	}
    	return list;
    }
    /**
     * 
     * @param num 當前行的個數
     * @return
     */
	private List<Integer> getNowRow(int num, List<List<Integer>> nowList) {
		// TODO Auto-generated method stub
		List<Integer> resList = new ArrayList<Integer>();
		if(num == 1) {
			resList.add(1);
			return  resList;
		}
		if(num == 2) {
			resList.add(1);
			resList.add(1);
			return resList;
		}
		for(int i = 1;i < num - 1; i++) {
			resList.add(nowList.get(num-2).get(i-1)+nowList.get(num-2).get(i));
		}
		//首尾加1
		resList.add(0, 1);
		resList.add(resList.size(), 1);
		return resList;
	}
}