【leetcode-數(shù)組】楊輝三角 II
題目:
給定一個(gè)非負(fù)索引 k斩祭,其中 k ≤ 33汹碱,返回楊輝三角的第 k 行。
image
在楊輝三角中项玛,每個(gè)數(shù)是它左上方和右上方的數(shù)的和貌笨。
示例1:
輸入: 3
輸出: [1,3,3,1]
示例2:
輸入: 4
輸出: [1,4,6,4,1]
進(jìn)階:
你可以優(yōu)化你的算法到 O(k) 空間復(fù)雜度嗎?
思路:
觀察發(fā)現(xiàn)襟沮。二維數(shù)組的值可分為兩種情況:
第一種:邊界值為1锥惋,
第二種:中間值 由左上加上右上。
題目k的取值范圍[0,33], 所以先求出行數(shù)為k+1的二維矩陣开伏,即[0, 1, 2, ..., k] 膀跌,再返回第k行即可。
java代碼:
class Solution {
public List<Integer> getRow(int rowIndex) {
List<List<Integer>> res = new ArrayList<>();
List<Integer> res0 = new ArrayList<>();
res0.add(1);
res.add(res0);
for (int i = 1; i <= rowIndex; i++) {
List<Integer> one = new ArrayList<>();
one.add(1);
for (int j = 1; j < i; j++) {
List<Integer> pre = res.get(i - 1);
one.add(pre.get(j - 1) + pre.get(j));
}
one.add(1);
res.add(one);
}
return res.get(rowIndex);
}
}