119-杨辉三角 II

给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。

示例:

输入: 3
输出: [1,3,3,1]
进阶:

你可以优化你的算法到 O(k) 空间复杂度吗?

解法一:先求出整个所需要的杨辉三角在返回具体行所在集合
  public List<Integer> getRow(int rowIndex) {
        List<List<Integer>> lists=new ArrayList<>();
        List<Integer> list=new ArrayList<>();
        list.add(1);
        lists.add(list);
        if (rowIndex==0)
            return list;
        for (int i=1;i<=rowIndex;i++)
        {
            List<Integer> list1=new ArrayList<>();
            List<Integer> list2=lists.get(i-1);
            list1.add(1);
            for (int j=1;j<i;j++)
            {
                int m=list2.get(j)+list2.get(j-1);
                list1.add(m);
            }
            list1.add(1);
            lists.add(list1);
        }
        return lists.get(rowIndex);
    }

猜你喜欢

转载自www.cnblogs.com/dloading/p/10805166.html