題目
給定一個非負索引 rowIndex,返回「楊輝三角」的第 rowIndex 行。
在「楊輝三角」中,每個數是它左上方和右上方的數的和。
示例 1:
輸入: rowIndex = 3
輸出: [1,3,3,1]
分析
楊輝三角每位數字就是上一行同一列+上一行前一列的和,這道題目要求我們在一個一維數組里不停的更新每一位數字。由于要求第rowIndex行,結合題目肯定是要遍歷rowIndex遍,而內循環則是從最右邊開始遍歷按照dp[j] = dp[j] + dp[j-1]的規律計算,注意不能從最左邊開始遍歷因為實際上在一緯數組中每個數字前面的部分相當于上一行的元素,在計算出當前元素的時候是不能先計算該元素前面的元素的
public class pascalTriangleII {public static void main(String[] args) {int[] dp = getPas(5);for(int i = 0;i<dp.length;i++) {System.out.println(dp[i]);}}public static int[] getPas(int row) {int[] dp = new int[row+1];dp[0] = 1;for(int i = 1;i<=row;i++) {for(int j = i;j>=1;j--) {dp[j] = dp[j] + dp[j-1];}}return dp;}
}