【LeeCode做题日记(C/C++)--简单】118题:杨辉三角(一)

这篇博客记录了作者使用C/C++解决LeeCode上的杨辉三角问题的经历。作者虽然主要学习Java,但为了应对保研的C/C++机试而选择用C/C++刷题。博客重点讨论了二维向量的创建,并分享了代码执行时间为8ms的解题心得。
摘要由CSDN通过智能技术生成

本人刷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我也感到很惊喜很满足了!继续努力吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值