1. 程式人生 > 其它 >leetcode題解119-楊輝三角II

leetcode題解119-楊輝三角II

技術標籤:leetcode程式設計與演算法Java

問題描述

給定一個非負索引 k,其中 k ≤ 33,返回楊輝三角的第 k 行。
在這裡插入圖片描述
在楊輝三角中,每個數是它左上方和右上方的數的和。
示例:

輸入: 3
輸出: [1,3,3,1]

解題思路

初始化兩個陣列,nums用來儲存當前計算到楊輝三角的某一行的值,而yuan則儲存當前計算到楊輝三角的上一行的值。這樣,每次nums[i]=yuan[i-1]+yuan[i].

程式碼實現

class Solution {
    public List<Integer> getRow(int rowIndex) {
		List<
Integer>
lists=new ArrayList<>(); if(rowIndex==0){ lists.add(1); return lists; } int nums[]=new int[rowIndex+1]; //儲存當前行的元素值 int yuan[]=new int[rowIndex+1]; //儲存上一行的元素值 //初始化第一行 nums[0]=1; yuan[0]=1; nums[1]=1; yuan[1]=1; for(int
i=2;i<=rowIndex;i++){ for(int j=1;j<=i;j++){ nums[j]=yuan[j-1]+yuan[j]; //矩陣中左上方和正上方的元素和 System.out.println(nums[j]); } //yuan陣列的值在下一次迴圈中等於當前nums陣列的值,這裡進行更新 for(int j=1;j<=i;j++){ yuan[j]=nums[j]; } } for(int i=0;i<=rowIndex;i++){ lists.
add(nums[i]); } return lists; } }