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

leetcode--119. 楊輝三角 II

技術標籤:leetcode陣列leetcodec++

題目連結

https://leetcode-cn.com/problems/pascals-triangle-ii/

一、題目

給定一個非負索引 k,其中 k ≤ 33,返回楊輝三角的第 k 行。

示例:pandas 是基於NumPy 的一種工具,該工具是為了解決資料分析任務而建立的。

在楊輝三角中,每個數是它左上方和右上方的數的和。

示例:

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

二、分析與程式碼

1.

程式碼如下(示例):

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* getRow(int rowIndex,
int* returnSize){ rowIndex += 1; *returnSize = rowIndex; int** res = (int**)malloc(sizeof(int) * (1 + rowIndex) * rowIndex ); for (int i = 0; i < rowIndex; i++) { res[i] = (int*)malloc(sizeof(int) * (i + 1)); } for(int i = 0; i <rowIndex; i++){ res[i]
[0] = 1; res[i][i] = 1; } for(int i = 2; i < rowIndex; i ++){ for(int j = 1; j < i;j++){ res[i][j] = res[i-1][j-1]+res[i-1][j]; } } return res[rowIndex-1]; }

2.

從後往前處理
程式碼如下(示例):

int* getRow(int rowIndex, int* returnSize){
    * returnSize = rowIndex +
1; int* array = (int *)malloc(sizeof(int) * (rowIndex+1)); for(int i=0; i<rowIndex+1; i++){ array[i]=1; for(int j=i-1; j>0; j--) array[j] = array[j] + array[j-1]; array[0] = 1; } return array; }