给定一个非负索引 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);
}