27、楊輝三角2
阿新 • • 發佈:2018-11-16
題目描述
跟之前不同的是這個只需要返回第n層即可,所以這次如果不考慮其複雜度,可以直接將昨天的程式碼給改造一下
如下
public static List<Integer> getRow(int rowIndex) { List<List<Integer>> target = new ArrayList<>(); for(int i = 1; i <= rowIndex + 1; i++){ List<Integer> mid = new ArrayList<>(); for(int j = 1; j <= i; j++){ if(j == 1 || j == i){ mid.add(1); }else { mid.add(target.get(i-2).get(j-2)+target.get(i-2).get(j-1)); } } target.add(mid); } return target.get(rowIndex); }
考慮如何進行優化
檢視如下的程式碼,沒怎麼看懂…
待看…
class Solution { public List<Integer> getRow(int rowIndex) { Integer[] rows = new Integer[rowIndex + 1]; rows[0] = 1; if(rowIndex > 0){ rows[1] = 1; } for(int i = 2;i <= rowIndex; i++){ for(int j = i - 1;j > 0;j--){ rows[j] = rows[j] + rows[j - 1]; } rows[i] = 1; } return Arrays.asList(rows); } }