Leetcode_pascals-triangle (updated c++ and python version)
2014-03-22 09:50
417 查看
地址:http://oj.leetcode.com/problems/pascals-triangle/
Given numRows, generate the first numRows of Pascal's triangle.
For example, given numRows = 5,
Return
思路:杨辉三角,第m行的数正好是(x+1)的m-1次方的系数。用for模拟注意下标。
参考代码:
//SECOND TRIALclass Solution {public: vector<vector<int> > generate(int numRows) { vector<vector<int> >ans; if(numRows<=0) return ans; for(int i = 0; i<numRows; ++i) { vector<int>vec(i+1, 1); for(int j = 0; j <= i; ++j) { if(j>0 && j<i) vec[j] = ans[i-1][j-1]+ans[i-1][j]; } ans.push_back(vec); } return ans; }};
python:
class Solution: # @return a list of lists of integers def generate(self, numRows): if numRows <= 0: return [] ans = [] for i in range(0, numRows): vec = [1] * (i+1) for j in range(0, i+1): if j > 0 and j < i: vec[j] = ans[i-1][j-1] + ans[i-1][j] ans.append(vec) return ans
Given numRows, generate the first numRows of Pascal's triangle.
For example, given numRows = 5,
Return
[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]
思路:杨辉三角,第m行的数正好是(x+1)的m-1次方的系数。用for模拟注意下标。
参考代码:
class Solution { public: vector<vector<int> > generate(int numRows) { vector<vector<int> >res; if(numRows) { for(int i = 0; i<numRows; ++i) { vector<int>vec; for(int j = 0; j <=i; ++j) { if(j==0 || j==i) { vec.push_back(1); } else { vec.push_back(res[i-1].at(j)+res[i-1].at(j-1)); } } res.push_back(vec); } } return res; } };
//SECOND TRIALclass Solution {public: vector<vector<int> > generate(int numRows) { vector<vector<int> >ans; if(numRows<=0) return ans; for(int i = 0; i<numRows; ++i) { vector<int>vec(i+1, 1); for(int j = 0; j <= i; ++j) { if(j>0 && j<i) vec[j] = ans[i-1][j-1]+ans[i-1][j]; } ans.push_back(vec); } return ans; }};
python:
class Solution: # @return a list of lists of integers def generate(self, numRows): if numRows <= 0: return [] ans = [] for i in range(0, numRows): vec = [1] * (i+1) for j in range(0, i+1): if j > 0 and j < i: vec[j] = ans[i-1][j-1] + ans[i-1][j] ans.append(vec) return ans
相关文章推荐
- Leetcode_pascals-triangle-ii (updated c++ and python version)
- Leetcode_maximum-depth-of-binary-tree (updated c++ and python version)
- Leetcode_jump-game (updated c++ and python version)
- Leetcode_path-sum (updated c++ and python version)
- Leetcode_multiply-strings (updated c++ and python version)
- Leetcode_unique-paths (updated c++ and python version)
- Leetcode_first-missing-positive (updated c++ and python version)
- *Leetcode_binary-tree-maximum-path-sum (updated c++ and python version)
- Leetcode_remove-duplicates-from-sorted-list (updated c++ and python version)
- Leetcode_populating-next-right-pointers-in-each-node(updated c++ and python version)
- Leetcode_binary-tree-zigzag-level-order-traversal (updated c++ and python version)
- Leetcode_length-of-last-word (updated c++ and python version)
- Leetcode_search-in-rotated-sorted-array-ii(updated c++ and python version)
- Leetcode_trapping-rain-water(updated c++ and python version)
- Leetcode_valid-number(updated c++ and python version)
- Leetcode_binary-tree-level-order-traversal (updated c++ and python version)
- Leetcode_merge-sorted-array(updated c++ and python version)
- Leetcode_permutation-sequence(c++ and python version)
- Leetcode_climbing-statirs (c++ and python version)
- Leetcode_max-points-on-a-line(c++ and python version)