leetcode 生成杨辉三角形, 118 119 Pascal's Triangle 1,2
2017-11-17 22:27
633 查看
Given numRows, generate the first numRows of Pascal's triangle.
For example, given numRows = 5,
Return
解决方案:
Pascal's Triangle II
Total Accepted: 46342
Total Submissions: 157260
Given an index k, return the kth row of the Pascal's triangle.
For example, given k = 3,
Return
Note:
Could you optimize your algorithm to use only O(k) extra space?
我的解决方案:
从没一行的倒数第二个算起,往前面逆推:
递归的解决方案:
python 解决方案:
For example, given numRows = 5,
Return
[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]
解决方案:
vector<vector<int>> generate(int numRows) { vector<vector<int>> res = {}; for (int i = 0; i < numRows; i++) { res.push_back(vector<int>(i + 1, 1)); for(int j = 1; j < i; j++) { res[i][j] = (res[i - 1][j] + res[i - 1][j - 1]); } } return res; }
Pascal's Triangle II
Total Accepted: 46342
Total Submissions: 157260
Given an index k, return the kth row of the Pascal's triangle.
For example, given k = 3,
Return
[1,3,3,1].
Note:
Could you optimize your algorithm to use only O(k) extra space?
我的解决方案:
从没一行的倒数第二个算起,往前面逆推:
vector<int> getRow(int rowIndex) { vector<int> result(rowIndex + 1, 1); for(int i = 1; i <= rowIndex; ++i) { for(int j = i - 1; j > 0; --j) { result[j] = result[j] + result[j - 1]; } } return result; }
递归的解决方案:
vector<int> getRow(int rowIndex) { vector<int> result; if (rowIndex == 0) { result.push_back(1); return result; } else { vector<int> vec = getRow(rowIndex - 1); result.push_back(1); for (size_t i = 0; i < vec.size() - 1; i++) { result.push_back(vec[i] + vec[i+1]); } result.push_back(1); } }
python 解决方案:
class Solution: # @param {integer} rowIndex # @return {integer[]} def getRow(self, rowIndex): row = [1] for i in range(1, rowIndex+1): row = list(map(lambda x,y: x+y, [0]+row, row + [0])) return row
相关文章推荐
- leetcode 生成杨辉三角形, 118 119 Pascal's Triangle 1,2
- LeetCode-118:Pascal's Triangle (生成指定行数的杨辉三角)
- leetcode118 and 119 Pascal's Triangle
- Leetcode刷题记—— 118. Pascal's Triangle(杨辉三角形)
- [Leetcode 118 and 119, Easy] Pascal's Triangle (I and II)
- leetcode 生成杨辉三角形, 118 119 Pascal's Triangle 1,2
- LeetCode - 118/119 - Pascal's Triangle
- [leetCode 118 & 119] Pascal's Triangle I && II (杨辉三角问题)
- 二维数组的生成-【leetcode118- Pascal's Triangle 】
- 2017.11.14 LeetCode - 118. Pascal's Triangle - 119. Pascal's Triangle II
- 杨辉三角(Pascal's Triangle)- LeetCode118-119
- LeetCode 118, 119. Pascal's Triangle i, ii
- leetcode 119. Pascal's Triangle II 杨辉三角形2
- leetcode 118|119. Pascal's Triangle 1|2
- LeetCode 119. Pascal’s Triangle II
- Leetcode 119. Pascal's Triangle II
- [Leetcode] 119. Pascal's Triangle II 解题报告
- Leetcode 119. Pascal's Triangle II
- LeetCode 119. Pascal's Triangle II
- 【LeetCode】119 Pascal's Triangle II