首页 > 代码库 > LeetCode: Pascal's Triangle II [119]
LeetCode: Pascal's Triangle II [119]
【题目】
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?
【题意】
给定行索引k, k从0开始,返回该索引指向的杨辉三角的行要求只能使用O(k)的额外空间
【思路】
杨辉三角特点的生成方法详见Pascal‘s Triangle
【代码】
class Solution { public: vector<int> getRow(int rowIndex) { vector<int>result; if(rowIndex<0)return result; //维护两个rowIndex+1长度的数组, rowIndex为偶数时,行元素存储在row1中;rowIndex为奇数时,行元素存储在row2中 vector<int> row1(rowIndex+1, 1); vector<int> row2(rowIndex+1, 1); int indexCount=0; //当前已经生成的行的行索引 while(indexCount<rowIndex){ indexCount++; if(indexCount%2==0){ //当前要从row2生成下一行元素,存到row1中 //row2有indexCount个元素,row1中有indexCount+1个元素 for(int i=1; i<indexCount; i++){ row1[i]=row2[i-1]+row2[i]; } } else{ //当前要从row1生成下一行元素,存到row2中 //row1有indexCount个元素,row2中有indexCount+1个元素 for(int i=1; i<indexCount; i++){ row2[i]=row1[i-1]+row1[i]; } } } //如果rowIndex是偶数,返回row1,否则返回row2 if(rowIndex%2==0)return row1; else return row2; } };
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。