题意:
解题思路:
思路: O(n2)1. 从上到下依次计算每一行2. 对于每行的首位,或者行列i,j值相等,则置位1,比如[00,10] = 1,[11,22] = 1;3. 计算中间值:$ans[$i][$j] = $ans[$i - 1][$j - 1] + $ans[$i - 1];
PHP代码实现:
class Solution { /** * @param Integer $numRows * @return Integer[][] */ function generate($n) { if ($n == 0) return []; for ($i = 0; $i < $n; $i++) { for ($j = 0; $j <= $i; $j++) { if ($j == 0 || $j == $i) { $ans[$i][$j] = 1; } else { $ans[$i][$j] = $ans[$i - 1][$j - 1] + $ans[$i - 1][$j]; } } } return $ans; }}
GO代码实现:
func generate(n int) [][]int { ans := make([][]int, n) for i := 0; i < n; i++ { ans[i] = make([]int, i + 1) ans[i][0] = 1 for j := 1; j < i; j++ { ans[i][j] = ans[i - 1][j - 1] + ans[i - 1][j] } ans[i][i] = 1 } return ans;}