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

顺序表vector--------杨辉三角

前言

今天给你们分享一件非常令人开心的事情,我在学校有了一个妹妹,傻乎乎的,还爱哭,整天不洗头,脏兮兮的,但是她人单纯随和,天真可爱,她总能给我一种安心的感觉,这一定是我这半年来最开心的事情了。话不多说,今天要分享的题目是杨辉三角,真是一道经典且酣畅淋漓的编程题呢。由于太过经典,可参考以下网址--------点击我。

题目

解法

class Solution {
public:vector<int> getRow(int rowIndex) {int f[34][34];for(int i=0;i<=rowIndex;i++){for(int j=0;j<=i;j++){if(j==0||j==i){f[i][j] = 1;}else{f[i][j] = f[i-1][j-1]+f[i-1][j];}}}vector<int>ret;for(int i=0;i<=rowIndex;i++){ret.push_back(f[rowIndex][i]);}return ret;}
};

这种方法就是新建一个数组来缓存杨辉三角,然后再创建一个顺序表,再返回对应某一行的数据。

这个同理:

class Solution {
public:vector<int> getRow(int rowIndex) {vector<vector<int>>ret(rowIndex+1);for(int i=0;i<=rowIndex;i++){ret[i].resize(i + 1);for(int j=0;j<=i;j++){if(j==0||j==i){ret[i][j] = 1;}else{ret[i][j] = ret[i-1][j-1]+ret[i-1][j];}}}return ret[rowIndex];}
};

进阶解法

class Solution {
public:vector<int> getRow(int rowIndex) {//滚动数组vector<int>pre;vector<int>now;for(int i=0;i<=rowIndex;i++){now.resize(i+1);now[0] = now[i] = 1;for(int j=1;j<i;j++){//j从1开始,因为0位置已赋值为1now[j] = pre[j] + pre[j-1];}pre = now;}return pre;}
};

这个是用滚动数组来做的,相当于借助了一点前缀和的东西,利用存储前一行数组的值来求后一行数组的值,使原本的二维数组变成了一维数组,大大优化了空间复杂度。

反思

1.考察知识点:杨辉三角:

2.踩的坑:这个题目一开始我就没有做出来,我一开始一直在寻找数字与数字之间的规律,然后利用规律解题,但实际上凭借一些简单的循环和最基本的关系也可以构建出来,就是俗称的暴力嘛,这个也未尝不可,所以只要题目要求并不苛刻,暴力也未尝不可。

3.可以优化的地方:今天利用滚动数组来优化,明天将进一步利用数学规律或者线性递归进行优化,敬请期待。

http://www.dtcms.com/a/577649.html

相关文章:

  • 阿里云 RDS PostgreSQL 可观测最佳实践
  • JVM堆的管理者——CodeCache
  • 目前哪个网站建设的最好wordpress 模板引入文件
  • Data+AI 时代,对象存储为 AI 应用注入全局动力
  • linux:io基础
  • WSL+openEuler云原生实践:Docker全流程部署与多容器编排深度评测
  • 个人笔记|单臂路由,子接口,VLAN标签
  • 罗湖商城网站设计推荐小程序服务开发公司
  • 赣州网站建设jx25网页开发用到的技术
  • 企业服务在产业平台领域的渗透率现状和发展未来
  • 【P27 回归算法及应用实践】有监督的机器学习、分类与回归、一元线性回归、最小二乘法、多元回归与梯度下降、学习率
  • Spring Boot 如何支持国际化
  • Excel斜线表头怎么做?合并单元格后添加对角线+两侧输入文字,新手也能秒会!
  • ara::core——Adaptive AUTOSAR
  • 大语言模型训推一体机:AI算力革命的“新引擎”,2031年市场规模突破123亿的黄金赛道
  • 百度网站降级的原因计算机一级考试网站怎么做
  • 复数的矩阵表示 | 欧拉恒等式的复数矩阵变换
  • Linux 系统调用在 ARM 上的实现与工作机制
  • 红松小课如何成为激活老年人生活的新引擎?从兴趣学习到价值重塑!
  • 怎么才能去定义自己的生活呢?
  • 嘉兴云建站模板重庆网站备案大厅
  • Java并发实战:ConcurrentHashMap原理与常见面试题
  • 前端FAQ: 在React中,如何优化⼤列表的渲染性能?
  • 华硕ROC奥创中心Armoury Crate服务崩溃解决办法
  • 工业软件国产替代:突破“卡脖子”,筑牢制造业升级基石
  • 大专生就业是否存在学历歧视?
  • Java 8 Stream API 进阶实战:从基础到业务落地的全解析​
  • Java117 最长公共前缀
  • 共聚焦显微镜(LSCM)的针孔尺寸标准解析
  • 长春网站优化方式投票链接制作