Leetcode - 118. Pascal's Triangle
想法:
這題的 general 公式很簡單
就是對於 [i][j] 的數值 (i 為 row number, j 為 column number)
計算方式是將 [i-1][j-1] 和 [i-1][j] 的數值相加
然後每個 row 的第一個和最後一個都會是 1
但這題卡住我最久的是 pointer 的問題
這時候就要複習到 function 中的 call by pointer
returnSize 是一個 pointer,他指向一個 int 的空間
returnSize 的意思是回傳的二維 array 有幾個 array (也就是有幾個 row)
所以將 "returnSize 這個 pointer 所指向的空間的值" (*returnSize) 指定為 numRows 的值
returnColumnSizes 是一個 pointer,他指向一個 int pointer array 的空間
returnColumnSizes 的意思是每個 row 有幾個 column
所以將 "returnColumnSizes 這個 pointer 所指向的空間,並且加上 index,找到存放對應 row 的 column size 的空間" (*returnColumnSizes[i]) 指定為每個 column 的大小
pascal_array 是一個 pointer,他指向一個 int pointer array 的空間 (就是一個 2D array)
每次尋訪到新的 row 時,都要記得宣告新的空間
所以每次 loop 一開始
"pascal_array 這個 pointer 所指向的空間,並且加上 index,找到存放對應 row 的 data 的 array" (pascal_array[i])
都要新宣告一個對應 column size 的空間存放這些 int
Code:
留言
張貼留言