LeetCode118:楊輝三角
阿新 • • 發佈:2018-12-15
解析:
楊輝三角應該是比較熟悉的題目,可以看成是一個二維陣列,陣列的每一行元素個數比上一行多一個,每一行第一個元素和最後一個元素都是1,其餘元素,是它左上角元素和它上面的元素之和。用公式表示就是f[m][n]=f[m-1][n-1]+f[m-1][n],前提是m->=0,n-1>=0 ; 所以根據這個公式就可以很好計算了。
用程式的話,就是需要一個vector儲存每一行的值,需要一個vector<vector<int>>儲存最終結果。
程式碼:
vector<vector<int>> generate(int numRows) { vector<vector<int>> result; if (numRows == 0) return result; vector<int> tmp;//用來儲存每一行的值 tmp.push_back(1); result.push_back(tmp);//先把第一行加入到結果中去 if (numRows == 1) {//如果只有一行 return result; } for (int i = 2; i <= numRows; i++) { vector<int> tmp(i, 1); for (int j = 1; j<i - 1; j++) { tmp[j] = result[i - 2][j - 1] + result[i - 2][j];//計算公式 } result.push_back(tmp); } return result; }