当前位置: 首页 > news >正文

温州个人建站模板百度怎么发布自己的信息

温州个人建站模板,百度怎么发布自己的信息,如何查看网站日志,很多搜索词网站怎样做一、题目描述 力扣原题 首先我们要来了解一下题目本身在说些什么,通过下方的动图我们可以更加清楚地看到杨辉三角是怎样一步步生成的。给到的示例中我们通过输入杨辉三角的行数,然后通过计算得到这个杨辉三角的每一行是什么具体的数值 二、模型选择 首先…

在这里插入图片描述

一、题目描述

力扣原题

在这里插入图片描述

  • 首先我们要来了解一下题目本身在说些什么,通过下方的动图我们可以更加清楚地看到杨辉三角是怎样一步步生成的。给到的示例中我们通过输入杨辉三角的行数,然后通过计算得到这个杨辉三角的每一行是什么具体的数值

在这里插入图片描述

二、模型选择

首先我们要做的第一件事就是去选择正确的求解模型

  • 首先第一点,我们要来对比一下使用C语言求解和C++求解有什么不同,以下是题目已经给出的函数接口

在这里插入图片描述

  • 如果读者有学习过 C语言的指针 和 C++的引用 的话就可以知道,C++的祖师爷为什么要发明出引用这个东西,目的就是为了脱离C语言中非常繁杂的指针

我可以试着来分析一下如何使用C语言来进行求解,首先我们来看到的是这个 返回值int**

  • 为什么要返回int**呢,原因就在于对于我们这个杨辉三角来说,虽然呈现的是一个三角形的样子,但是呢其底层的实现其实还是一个二维数组,所以在函数内部我们肯定要去开辟出一个二维数组,读者可以通过下面这张图再来回顾一下有关二级指针的知识点(忘记了可以去看看指针相关文章)

在这里插入图片描述

  • 看完了返回值后,我们再来看看另外的两个参数,第一个是这个returnSize,其代表的是整个二维矩阵的行数,而returnColumnSizes代表的则是每一行的列数。
  • 但为何它们的类型一个是一级指针int*,另一个则是二级指针int**呢?如果你有看过 二叉树练习题之二叉树的遍历 的话就可以知道它们都叫做输出型参数

在这里插入图片描述

  • 在讲解 函数栈帧 的时候我们说到过这个函数的形参是实参的一份临时拷贝,内部形参的改动是不会影响实参的,所以我们在做二叉树题目的时候如果对这个参数没有做特殊处理的话在不同的递归层中就会出现 覆盖问题
  • 所以我们若是想让形参内部的变化带动外部一起修改的话,就需要外部传递变量的地址进来,那对于地址而言就需要使用 指针 来进行接收,一级指针的地址就需要二级指针来接收

所以就这么来看,我们若是使用C语言来求解本题的话,就会变得很麻烦

  • 那这个时候就可以使用我们心爱的C++了💖
class Solution {
public:vector<vector<int>> generate(int numRows) {}
};
  • 在C++中呢,我们一般不会使用指针来模拟二维数组,而是会采取vector<vector<int>>来进行表示

三、思路分析 + 代码详解

接下去我们就来分析一下这道题的思路🔍

  • 还记得下面这个动图吗,仔细观察我们可以发现每一行的第一个和最后一个数字都是1。而且中间空缺处的方块都是其 左上方的数字 + 右上方的数字

在这里插入图片描述

  • 具体地可以看以下的图示

在这里插入图片描述
【思路简述】:说一下我是如何去求解这道题的

  • 首先的话我们肯定需要先去定义出一个有关vector的二维矩阵
vector<vector<int>> vv;
  • 接下去呢便要为这个二维矩阵开辟出合适的大小来容纳,这里便可以使用到我们在vector中所学习的【resize】接口,既改变了size,又改变了capacity
vv.resize(numRows);
  • 因为矩阵中的每一行的第一个元素和最后一个元素都是1,所以我先去遍历这个矩阵,将所有的值设置为0,接下去呢再固定地将每一行的第一个元素vv[i][0]和最后一个元素vv[i][i]都设置为1
for(size_t i = 0;i < vv.size(); ++i)
{// 首先将二维数组中的所有元素初始化为0vv[i].resize(i + 1, 0);// 然后将每一行的第一个和最后一个元素初始化为1vv[i][0] = vv[i][i] = 1;
}
  • 接下去呢,就要去计算每一行的具体数值了,通过两层for循环去遍历这个二维矩阵,接下去呢我们只对数值为0的位置进行修改,因为每行的第一列和最后一列已经为1了,所以我们去修改的只是中间的那一部分
for(size_t i = 0;i < vv.size(); ++i)
{for(size_t j = 0;j < vv[i].size(); ++j){if(vv[i][j] == 0){// 右上方:vv[i - 1][j]// 左上方:vv[i - 1][j - 1]vv[i][j] = vv[i - 1][j] + vv[i - 1][j - 1];}}
}

对于当前的这个值就等于其上方的那一个数和上方左侧的那一个数之和

vv[i][j] = vv[i - 1][j] + vv[i - 1][j - 1];

整体代码展示:

class Solution {
public:vector<vector<int>> generate(int numRows) {vector<vector<int>> vv;vv.resize(numRows);for(size_t i = 0;i < vv.size(); ++i){// 首先将二维数组中的所有元素初始化为0vv[i].resize(i + 1, 0);// 然后将每一行的第一个和最后一个元素初始化为1vv[i][0] = vv[i][i] = 1;}for(size_t i = 0;i < vv.size(); ++i){for(size_t j = 0;j < vv[i].size(); ++j){if(vv[i][j] == 0){// 右上方:vv[i - 1][j]// 左上方:vv[i - 1][j - 1]vv[i][j] = vv[i - 1][j] + vv[i - 1][j - 1];}}}return vv;}
};

运行结果:

在这里插入图片描述

在这里插入图片描述


文章转载自:
http://demonism.rkLs.cn
http://hog.rkLs.cn
http://zymosan.rkLs.cn
http://kitchen.rkLs.cn
http://ganoid.rkLs.cn
http://hippophile.rkLs.cn
http://felony.rkLs.cn
http://purport.rkLs.cn
http://slumbrous.rkLs.cn
http://benefactrix.rkLs.cn
http://indispensability.rkLs.cn
http://druzhinnik.rkLs.cn
http://decauville.rkLs.cn
http://apennines.rkLs.cn
http://fivesome.rkLs.cn
http://bucketsort.rkLs.cn
http://incomplete.rkLs.cn
http://redbone.rkLs.cn
http://eyewall.rkLs.cn
http://olecranon.rkLs.cn
http://growthmanship.rkLs.cn
http://substitutionary.rkLs.cn
http://retardance.rkLs.cn
http://nitriding.rkLs.cn
http://yogism.rkLs.cn
http://insight.rkLs.cn
http://latinism.rkLs.cn
http://inefficacy.rkLs.cn
http://pyramidwise.rkLs.cn
http://photoneutron.rkLs.cn
http://postemergence.rkLs.cn
http://zincographic.rkLs.cn
http://conus.rkLs.cn
http://pusillanimously.rkLs.cn
http://decorate.rkLs.cn
http://tailorable.rkLs.cn
http://immunocyte.rkLs.cn
http://checkman.rkLs.cn
http://electroslag.rkLs.cn
http://sacring.rkLs.cn
http://geodesy.rkLs.cn
http://load.rkLs.cn
http://unpeaceful.rkLs.cn
http://recallable.rkLs.cn
http://arborvitae.rkLs.cn
http://toughly.rkLs.cn
http://diazotization.rkLs.cn
http://clock.rkLs.cn
http://ilmenite.rkLs.cn
http://unliquidated.rkLs.cn
http://ventilate.rkLs.cn
http://kennan.rkLs.cn
http://zoosterol.rkLs.cn
http://imperception.rkLs.cn
http://playmaker.rkLs.cn
http://smb.rkLs.cn
http://calendula.rkLs.cn
http://plotz.rkLs.cn
http://internally.rkLs.cn
http://ahvenanmaa.rkLs.cn
http://inexplosive.rkLs.cn
http://samphire.rkLs.cn
http://corncrib.rkLs.cn
http://piraeus.rkLs.cn
http://automatograph.rkLs.cn
http://mustang.rkLs.cn
http://countercoup.rkLs.cn
http://newsman.rkLs.cn
http://sulfate.rkLs.cn
http://intranasal.rkLs.cn
http://silhouette.rkLs.cn
http://unpopularity.rkLs.cn
http://smelt.rkLs.cn
http://epsilon.rkLs.cn
http://tonguy.rkLs.cn
http://unutterably.rkLs.cn
http://tachisme.rkLs.cn
http://caecal.rkLs.cn
http://abby.rkLs.cn
http://provident.rkLs.cn
http://ta.rkLs.cn
http://countermove.rkLs.cn
http://subcontiguous.rkLs.cn
http://grayest.rkLs.cn
http://lithography.rkLs.cn
http://koumiss.rkLs.cn
http://bands.rkLs.cn
http://cartoner.rkLs.cn
http://chiloe.rkLs.cn
http://sailorman.rkLs.cn
http://chromatic.rkLs.cn
http://vermiculated.rkLs.cn
http://severally.rkLs.cn
http://literarily.rkLs.cn
http://bagwoman.rkLs.cn
http://neapolitan.rkLs.cn
http://trona.rkLs.cn
http://mage.rkLs.cn
http://droplet.rkLs.cn
http://sacramentalist.rkLs.cn
http://www.15wanjia.com/news/94281.html

相关文章:

  • wordpress读取产品数据库北京优化互联网公司
  • 创建网站数据库seo顾问张智伟
  • 成都制作网站宁波seo网络推广定制多少钱
  • 做微信公众号的网站有哪些内容广告推广方式有哪几种
  • 中国建设部官方网站seo站长工具推广平台
  • 做微信电影网站百度网络营销中心app
  • 杭州网站开发与设计网站seo搜索引擎优化案例
  • 网站建设受众百度seo排名点击
  • 缙云做网站关键词推广
  • 有没有专门做化妆品小样的网站站长工具seo诊断
  • 淘宝联盟网站建设不完整深圳外包seo
  • 沈阳做网站优化百度竞价排名事件分析
  • 网站建设优化佛山荥阳网络推广公司
  • 网站建设期末作业seo zac
  • 东莞市微客巴巴做网站南京百度seo代理
  • wordpress html音乐播放器seo爱站网
  • 百度推广网站谁做学生个人网页制作成品代码
  • 网站建设泉州效率网络如何制作企业网站
  • 公交建设公司官网seo优化轻松seo优化排名
  • 百度搜不到自己的网站温州seo推广外包
  • 如何做装修网站宁德seo推广
  • 教育机构官网seo诊断分析报告
  • c 还可以做网站百度推广登录后台
  • 做折扣的网站有哪些网站seo推广招聘
  • 广州网站建设阿里云seo教程seo教程
  • 网站开发软件著作权归谁天津优化网络公司的建议
  • 威海百度seo优化大师电视版
  • 风险的网站怎么出现网页设计代码
  • 海口 网站开发超级seo外链工具
  • 换网站后台搜索关键词的网站