本人刷LeeCode不按顺序啦嘿嘿嘿,所以先放一个杨辉三角。
因为学校里学的是Java,所以对C/C++不熟悉,但是准备保研看到好多学校机试C/C++居多,所以全都用C/C++来刷题啦!
【题目】
杨辉三角大家都比较熟悉了~
【题目关注点】
(我个人想要关注的点哦~不想看直接往下拉就好了~o(* ̄▽ ̄*)ブ)
二维向量的创建:
1、每行(列)元素个数都相同:
//m*n的二维向量
vector<vector<int> > vec(m, vector<int>(n));
2、每行元素个数不相同:
vector<vector<int> >vec;//先声明一个二维向量
//每一行的元素个数等于该行的下标加一
for(int i=0; i < numRows; i++)
vec.push_back(vector<int>(i+1,0));
【解答】
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int> >vec;
for(int i=0; i < numRows; i++)
vec.push_back(vector<int>(i+1,0));
for(int r=0; r<numRows; ++r){
for(int c=0; c<r+1; ++c){
if(c==0||c==r){//当循环到每行的第一个和最后一个元素时直接赋值为1
vec[r][c] = 1;
}
else if(r!=0){
vec[r][c] = vec[r-1][c]+vec[r-1][c-1];
}
}
}
return vec;
}
};
(不同次提交相同代码也可能会有不同的执行时间,所以仅供参考哦~)
吼吼吼,比不上少于5ms的大佬们,达到8ms我也感到很惊喜很满足了!继续努力吧!