本文主要是介绍leetcode119-Pascal‘s Triangle II,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目
给定一个非负索引 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;}
}
这篇关于leetcode119-Pascal‘s Triangle II的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!