根据前面的启发,可以知道,只需要输出本行,我们之前定义了两个List,一个为上一行,一个为本行,可以直接输出本行的。
class Solution { public List<Integer> getRow(int rowIndex) { List<Integer> li = new ArrayList<>(); int i,j; li.add(1); for(i = 2;i <= rowIndex+1;i++) { List<Integer> l = new ArrayList<>(); l.add(1); for(j = 0;j < i-2;j++) { l.add(li.get(j)+li.get(j+1)); } l.add(1); li = l; } return li; } }
假如,在第一个for循环中为rowIndex,这时,li是上一行的值,l中是本行的值,但是,再return l,会报错误。
就变成了,多算一步,输出li。
缺点就在于计算时间过长。