首页 > 代码库 > Pascal's Triangle
Pascal's Triangle
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]]
1 class Solution { 2 public: 3 vector<vector<int> > generate(int numRows) { 4 vector<vector<int>> sols; 5 if(numRows==0)return sols; 6 vector<int> pre(1,1); 7 sols.push_back(pre); 8 for(int i=1;i<numRows;i++) 9 {10 vector<int> cur;11 cur.push_back(1);12 for(int j=1;j<i;j++)13 {14 cur.push_back(sols[i-1][j-1]+sols[i-1][j]);15 }16 cur.push_back(1);17 sols.push_back(cur);18 }19 return sols;20 }21 };
Pascal‘s Triangle II
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?
思路:从后往前加就可以利用一个数组。
1 class Solution { 2 public: 3 vector<int> getRow(int rowIndex) { 4 vector<int> sols(1,1); 5 for(int i=1;i<rowIndex+1;i++) 6 { 7 sols.resize(i+1,0); 8 for(int j=sols.size()-1;j>=1;j--) 9 {10 sols[j]=sols[j]+sols[j-1];//!!!!11 }12 }13 return sols;14 15 }16 };
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。