博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
杨辉三角[LeetCode-118]
阅读量:6477 次
发布时间:2019-06-23

本文共 1278 字,大约阅读时间需要 4 分钟。

思路分析

很简单,就是每一行的出去第一个和最后一个之外的节点都是上一行的左右节点之和,对应下面的:

line_vec.push_back(prev_vec[j-1] + prev_vec[j]);

代码实现

自己的实现

class Solution {
public: vector
> generate(int numRows) { vector
> res; vector
tmp; if (numRows == 0) { // res.push_back(tmp); // 空结果,不用再多此一举赋值了 return res; } tmp.push_back(1); res.push_back(tmp); if (numRows == 1) { return res; } for (int i = 2; i <= numRows; i++) { vector
line_vec; for (int j = 0; j < i; j++) { if (j == 0 || j == i - 1) { line_vec.push_back(1); continue; } vector
prev_vec = res[i - 2]; line_vec.push_back(prev_vec[j-1] + prev_vec[j]); } res.push_back(line_vec); } return res; }};复制代码

网友的实现,更简洁:

class Solution {
public: vector
> generate(int numRows) { vector
> res(numRows, vector
()); for (int i = 0; i < numRows; ++i) { res[i].resize(i + 1, 1); for (int j = 1; j < i; ++j) { res[i][j] = res[i - 1][j - 1] + res[i - 1][j]; } } return res; }};复制代码

转载地址:http://btqko.baihongyu.com/

你可能感兴趣的文章
C#中禁止程序多开
查看>>
分布式缓存Redis使用以及原理
查看>>
Activity竟然有两个onCreate方法,可别用错了
查看>>
Linux经常使用命令(十六) - whereis
查看>>
core dump相关
查看>>
Linux五种IO模型
查看>>
Bootstrap技术: 模式对话框的使用
查看>>
小知识,用myeclipes找jar
查看>>
in-list expansion
查看>>
设计原则(四):接口隔离原则
查看>>
基于react的滑动图片验证码组件
查看>>
iOS快速清除全部的消息推送
查看>>
java单例模式深度解析
查看>>
【学习笔记】阿里云Centos7.4下配置Nginx
查看>>
VuePress手把手一小時快速踩坑
查看>>
dnsmasq安装使用和体验
查看>>
学习constructor和instanceof的区别
查看>>
Vijos P1881 闪烁的星星
查看>>
ABP理论学习之领域服务
查看>>
Qt 控制watchdog app hacking
查看>>