LeetCode【119. 杨辉三角 II】

根据前面的启发,可以知道,只需要输出本行,我们之前定义了两个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。

缺点就在于计算时间过长。

猜你喜欢

转载自www.cnblogs.com/wzwi/p/10811976.html