一、问题描述
Given an index k, return the kth row of the Pascal's triangle.
For example, given k = 3,
Return [1,3,3,1]
.
二、思路
可知此题意在返回第k个杨辉三角的行。递归思路,递归退出条件是:
if(rowIndex == 0){
vec.push_back(1);
return vec;
}
每次在行数>1时,在开始和最后需要单独添加1,中间每次都是调用自身递归,同时循环将第二个数到第行数 - 1 个数加入到数组中,最后返回数组。
三、代码
class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<int> vec;
if(rowIndex == 0){
vec.push_back(1);
return vec;
}
else{
vec.push_back(1);
vector<int> last = getRow(rowIndex - 1);
for(int i = 0; i < last.size() - 1; ++i)
vec.push_back(last[i] + last[i + 1]);
vec.push_back(1);
return vec;
}
return vec;
}
};