leetcode118. 119.杨辉三角

news2025/2/19 7:55:31

118

题目:

给定一个非负整数 numRows生成「杨辉三角」的前 numRows 行。

在「杨辉三角」中,每个数是它左上方和右上方的数的和。

 思路:

可以发现从第三行开始,从第二个元素到倒数第二个元素,每个元素都是左上方和正上方元素的和。

先初始化全1的半个矩阵,然后如果行数大于2,就从第三行开始遍历,改变对应位置的值。

代码:

class Solution {
public:
    vector<vector<int>> generate(int numRows) {
        // 初始化
        vector<vector<int>> num;
        num.resize(numRows);
        int i = 0, j = 0;
        for(i = 0; i < numRows; i++){
            num[i].resize(i+1);
        }
        // 都赋值为1
        for(i = 0; i < num.size(); i++){
            for(j = 0; j < num[i].size(); j++){
                num[i][j] = 1;
            }
        }
        // 如果大于2
        if(numRows > 2){
            for(i = 2; i < num.size(); i++){
                for(j = 1; j < num[i].size()-1; j++){
                    num[i][j] = num[i-1][j-1] + num[i-1][j];
                }
            }
        }

        return num;
    }
};

知识补充:

1. vector中数组初始化尺寸用到的是 resize 函数

// 重设容器大小以容纳 count 个元素。
void resize( size_type count );

2. vector二维数组的遍历

for(i = 0; i < num.size(); i++){
    for(j = 0; j < num[i].size(); j++){
         num[i][j] = 1;
    }
}

119

题目

给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。

在「杨辉三角」中,每个数是它左上方和右上方的数的和。

注意的点:

这里给的是索引,即下标,如果我们说索引是3,那么它实际上是第4行

 代码:

class Solution {
public:
    vector<int> getRow(int rowIndex) {
        // 初始化
        vector<vector<int>> num;
        num.resize(rowIndex+1);
        int i = 0, j = 0;
        for(i = 0; i < num.size(); i++){
            num[i].resize(i+1);
        }

        // 都赋值为1
        for(i = 0; i < num.size(); i++){
            for(j = 0; j < num[i].size(); j++){
                num[i][j] = 1;
            }
        }

        // 改变值,从第三行开始
        if(rowIndex+1 > 2){
            for(i = 2; i < num.size(); i++){
                for(j = 1; j < num[i].size() - 1; j++){
                    num[i][j] = num[i-1][j-1] + num[i-1][j];
                }
            }
        }

        return num[rowIndex];
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/863743.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电视盒子什么品牌好?实测20天后分享电视盒子推荐

电视盒子可以让老旧电视机重生&#xff0c;解决卡顿、资源少等问题&#xff0c;只需要联网就能观看海量视频资源。不过对于电视盒子如何选购很多人并不了解&#xff0c;我通过对比十几款主流电视盒子后整理了这份电视盒子推荐清单&#xff0c;跟着我一起看看电视盒子什么品牌好…

记一件异常访问记录

一、问题描述 某安全护网期间&#xff0c;web日志中大量出现异常账户请求&#xff0c;虽然报404错误&#xff0c;但是不同异常账号的连续尝试在特殊时期&#xff0c;还是令人担忧. 进程如下&#xff1a;/usr/bin/python2 -Es /usr/sbin/tuned -l -P 二、处理及说明 1&#x…

涛思数据联合长虹佳华、阿里云 Marketplace 正式发布 TDengine Cloud

近日&#xff0c;涛思数据联合长虹佳华&#xff0c;正式在阿里云 Marketplace 发布全托管的时序数据云平台 TDengine Cloud&#xff0c;为用户提供更加丰富的订购渠道。目前用户可通过阿里云 Marketplace 轻松实现 TDengine Cloud 的订阅与部署&#xff0c;以最低的成本搭建最高…

跨境多语言商城源码搭建--定制代码+源码开源

搭建一个跨境多语言商城需要以下步骤&#xff1a; 1. 确定需求&#xff1a;首先&#xff0c;需要明确商城的功能和需求&#xff0c;比如支持哪些语言、支持哪些支付方式、支持哪些货币等。根据需求来决定使用的开发语言和技术栈。 2. 寻找源码&#xff1a;可以在互联网上搜索…

赛码网-上台阶(dp) 100%AC代码(C)

———————————————————————————————————— ⏩ 大家好哇&#xff01;我是小光&#xff0c;嵌入式爱好者&#xff0c;一个想要成为系统架构师的大三学生。 ⏩最近在准备秋招&#xff0c;一直在练习编程。 ⏩本篇文章对赛码网的上台阶 题目做一个…

【Pytorch:nn.Embedding】简介以及使用方法:用于生成固定数量的具有指定维度的嵌入向量embedding vector

文章目录 1、nn.Embedding2、使用场景 1、nn.Embedding 首先我们讲解一下关于嵌入向量embedding vector的概念 1&#xff09;在自然语言处理NLP领域&#xff0c;是将单词、短语或其他文本单位映射到一个固定长度的实数向量空间中。嵌入向量具有较低的维度&#xff0c;通常在几…

医院国际医疗中心智能化系统规划设计方案[81页PPT]

导读&#xff1a;原文《医院国际医疗中心智能化系统规划设计方案[81页PPT]》&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。 完整版领取方式 完整版领取方式&#xff…

如何对分布式光伏发电站进行智能化监测?安科瑞 顾语欢

—、概述 随着“双碳”目标提出及逐步落实&#xff0c;本就呈现出较好发展势头的分布式光伏发展有望大幅提速。“双碳”目标意味 着国家产业结构的调整&#xff0c;未来10年&#xff0c;新能源装机将保持在110GW以上的年增速&#xff0c;这里面包含集中式光伏电站和分布式光伏…

02 - git 文件重命名

第一种方式&#xff1a; mv kongfu_person.txt kongfu.txt git add .第二种方式&#xff1a; git mv kongfu_person.txt kongfu.txt

Baklib: 逆袭语雀的在线帮助中心,知识库管理工具

1. 介绍 在现代的技术发展中&#xff0c;知识管理变得越来越重要。特别是对于企业来说&#xff0c;拥有一个高效的知识库管理工具可以极大地提高工作效率和团队合作。Baklib就是这样一款在线帮助中心和知识库管理工具&#xff0c;它可以帮助企业集中管理和共享知识&#xff0c…

红帽8.2版本CSA题库:第七题配置 NTP

红帽8.2版本CSA题库&#xff1a;第七题配置 NTP systemctl status chronyd &#xff03;查看状态 yum -y install chrony &#xff03;如果没有安装&#xff0c;就安装一下 vim /etc/chrony.conf server materials.example.com iburst :wq syste…

MySQL缓存策略

文章目录 一、MySQL缓存方案的作用二、提高MySQL访问性能的方式2.1 读写分离2.1.1 是什么&#xff1f;2.1.2 解决了什么&#xff1f;2.1.3 原理是什么&#xff1f; 2.2 连接池2.1.1 是什么&#xff1f;2.1.2 解决了什么&#xff1f;2.1.3 原理是什么&#xff1f; 2.3 异步连接2…

【论文阅读】NoDoze:使用自动来源分类对抗威胁警报疲劳(NDSS-2019)

NODOZE: Combatting Threat Alert Fatigue with Automated Provenance Triage 伊利诺伊大学芝加哥分校 Hassan W U, Guo S, Li D, et al. Nodoze: Combatting threat alert fatigue with automated provenance triage[C]//network and distributed systems security symposium.…

Arcgis中直接通过sde更新sqlserver空间数据库失败

问题 背景 不知道有没有人经历过这样一个情况,我们直接在Arcgis中通过sde更新serserver数据库会失败,就是虽然在sde更新sqlserver数据库,但是在Navicat中通过sql语句来查询,发现数据并没有更新,如:上图中,更新数据库后,第一张图是sde打开的sqlserver数据库,它的数据库…

自动测试框架airtest应用一:将XX读书书籍保存为PDF

一、Airtest的简介 Airtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具。Airtest的框架是网易团队自己开发的一个图像识别框架&#xff0c;这个框架的祖宗就是一种新颖的图形脚本语言Sikuli。Sikuli这个框架的原理是这样的&#xff0c;计算机用户不需要…

24届近5年南京工业大学自动化考研院校分析

今天给大家带来的是南京工业大学控制考研分析 满满干货&#xff5e;还不快快点赞收藏 一、南京工业大学 学校简介 南京工业大学&#xff08;Nanjing Tech University&#xff09;&#xff0c;简称“南工”&#xff0c;位于江苏省南京市&#xff0c;由国家国防科技工业局、住…

宿舍管理系统--前后端分离式项目架构流程复盘(三万字详解)

文章目录 &#x1f412;个人主页&#x1f3c5;JavaEE系列专栏&#x1f4d6;前言&#xff1a;【&#x1f387;前端】先创建Vue-cli项目&#xff08;版本2.6.10&#xff0c;仅包含babel&#xff09;&#xff0c;请选择此项目并创建 【整理简化项目模板】【&#x1f380;创建路由】…

恒运资本:申购新股中签率技巧?

新股IPO被称为出资市场上最受欢迎的范畴之一&#xff0c;由于它可以一起给企业和出资者带来许多好处。股市炒作一直是出资者想要的收益方法之一&#xff0c;而新股IPO是这种收益方法的最好代表。尽管IPO市场潜力巨大&#xff0c;但新股申购的中签率确实是一个值得考虑的问题。在…

栈和队列详解(2)

目录 一、什么是队列&#xff1f; 二、创建一个我们自己的队列 1.前置准备 1.1需要的三个文件 1.2结构体的创建和头文件的引用 2.接口的实现 2.1初始化队列 2.2入队 2.3队列元素个数和判空 2.4取队头元素和队尾元素 2.5出队 2.6摧毁队列 2.7测试接口 三、所有代码 1.…