数组经典题之杨辉三角变形
题目
杨辉三角变形
解决
可以把题目给的图变形成一个容易理解的三角形
可以看出每一个数都是上面的三个数的和。
我们可以将原图补全为一个完整的矩形,每一行的元素个数的都是2×行标-1。
因此我们可以搞出一个矩形,首先所有为止都填充为0,然后依次按照列赋值,其中每一行的第一列和最后一列的值为1,每一行的第二列和倒数第二列需要特殊处理,因为他们不够上一行的数不够三个,直接复制会越界。
解决
#include <iostream>
#include <vector>
using namespace std;int find_index(int n)
{int m=2*n-1;//长为m,宽为n的矩形vector<vector<int>> vv(n,vector<int>(m,0));vv[0][0]=1;for(int i=1;i<n;i++)//按行{vv[i][0]=vv[i][2*i]=1;//每一行的第一个元素和最后一个元素是1for(int j=1;j<2*i;j++)//按列赋值{if(j==1)//第二列特殊处理vv[i][j]=vv[i-1][j]+vv[i-1][j-1];else if(j==2*i-1)//倒数第二列特殊处理vv[i][j]=vv[i-1][j-1]+vv[i-1][j-2];else//正常情况vv[i][j]=vv[i-1][j-2]+vv[i-1][j-1]+vv[i-1][j];}}for(int k=0;k<m;k++)//查找第n行第一个出现的偶数的下标{if(vv[n-1][k]%2==0){return k+1;}}return -1;}int main()
{int n,index;while(cin>>n){index=find_index(n);cout<<index<<endl;}}
这道题关键就在于对于下标的精确把握,稍有不注意就会做错
数组经典题之杨辉三角变形相关推荐
- java二维数组杨辉三角_实验----Java的二维数组的应用及杨辉三角的编写
(1) 编写一个程序,生成一个10*10的二维随机整数数组,并将该数组的每行最大值保存于一个一维数组中,将每列平均值保存于另外一个一维数组中并分别输出. (2) 编程输出杨辉三角的前10行. 找出一个 ...
- 利用非数组的方法输出杨辉三角
大家知道利用数组数组的方法输出杨辉三角是一件比较容易的事情,在许多的教材上都能够找到,而且计算速度比较快,但是有个缺点就是当输出的阶数比较大的时候,需要占用较多的存储空间. 下面我尝试用利用非数组的方 ...
- java趣味题-打印杨辉三角
java趣味题-打印杨辉三角 public class First105 { public static void main(String[] args) { int [][] a=new int ...
- LeetCode简单题之杨辉三角 II
题目 给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行. 在「杨辉三角」中,每个数是它左上方和右上方的数的和. 示例 1: 输入: rowIndex = 3 输出: [1 ...
- 用python编写杨辉三角金字塔_用python实现三道简单算法题:杨辉三角,蛇形矩阵,金字塔...
分享几道简单的python打印输出的问题,本质上都是可以将其分解成一个大循环之中有几个小循环. 1.杨辉三角 主要特点: 每个数等于它上方两数之和. 每行数字左右对称,由1开始逐渐变大. 每行端点与结 ...
- 杨辉三角变形(高效解析)
题目链接: https://www.nowcoder.com/practice/8ef655edf42d4e08b44be4d777edbf43?tpId=37&&tqId=21276 ...
- LeetCode简单题之杨辉三角
题目 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行. 在「杨辉三角」中,每个数是它左上方和右上方的数的和. 示例 1: 输入: numRows = 5 输出: [[1], ...
- leetcode 刷题 119. 杨辉三角II
给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 3 输出: [1,3,3,1] 解答: class Soluti ...
- leetcode 刷题 118. 杨辉三角解题思路
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 5 输出: [ [1], [1,1], ...
最新文章
- blender动画全面学习教程
- android 自定义textview 垂直滚动,Android中TextView如何实现水平和垂直滚动
- java set 接口_【Java提高十七】Set接口集合详解
- 零基础如何学好数据分析?
- 《假如编程是魔法之零基础看得懂的Python入门教程 》——(七)我把魔法变成了积木
- asp.net后台正则表达式验证手机号码邮箱
- Kotlin中定义编译时常量
- 计算机恢复失败有杀毒,360安全卫士电脑清理结束不了,系统修复结束不了,木马查杀开始不了,电脑体检结束不了。怎么回事?...
- 物件导向比面向对象更准确
- 超文本链接html,什么是超文本链接超文本链接有什么用
- I219-V 14代 win7x64驱动程序
- Apache Camel 了解一下?
- 软通动力机考题目汇总
- ShellNet:Efficient Point Cloud Convolutional Neural Networks using Concentric Shells Statics
- 源码|并发一枝花之ConcurrentLinkedQueue【伪】
- Java版CRC8和CRC16工具类
- 部署exchange2010三合一:之十:NLB负载均衡先决条件
- prometheus安装
- Windows下RocketMQ下: VMCould not reserve enough space for 2097152KB object heap
- 千寻位置:对话千万粉丝UP主「所长林超」,会激起什么火花?
热门文章
- 无盘服务器回写盘intel,无盘回写盘碎片清理工具 完美解决无盘回写盘碎片
- linux中printf命令,Linux中printf命令使用实例
- thinkpad卡在logo界面_四大系列 一个品牌,超好用的商务伴侣Thinkpad
- Adobe illustrator 排版后图形导出这样的Tiff/PNG - 连载 3
- 别人运行的好好的R代码,到我这怎么就冲突了?
- 电脑音频服务未运行怎么解决_电脑提示音频服务未运行怎么办,快来看看吧,图片描述(最多50字)...
- oracle logfile sync,oracle等待事件3构造一个DirectPathwrite等待事件和构造一个LogFileSync等待事件...
- c 读取mysql另一个窗体中显示出来_二级ACCESS数据库4窗体的笔试题考点分析
- python 怎么设置背景为白色_pycharm怎么将背景颜色设置成白色?
- Oracle笔记-USRS01.DBF文件过大,解决办法