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

leetcode刷題 楊輝三角2

技術標籤:leetcode刷題

這一次的問題我本來以為照抄上一次的內容就能做出來,然後發現對上一版的改動還挺大的。主要就是遞迴的使用,以及遞迴程式碼出現的位置。

class Solution {
    public List<Integer> getRow(int rowIndex) {
    	List<Integer> resList = new ArrayList<Integer>();
    	List<Integer> beforeList = new ArrayList<Integer>();//上一行的記錄
		if(rowIndex == 0) {
			resList.add(1);
			return  resList;
		}
		if(rowIndex == 1) {
			resList.add(1);
			resList.add(1);
			return resList;
		}
		//遞迴程式碼的出現位置不要放在迴圈之中,放在之外
		beforeList = getRow(rowIndex - 1);
		for(int i = 1;i < rowIndex ; i++) {	
			resList.add(beforeList.get(i-1) + beforeList.get(i));
		}
		//首尾加1
		resList.add(0, 1);
		resList.add(resList.size(), 1);
		return resList;
    }
}