题目

杨辉三角变形

解决

可以把题目给的图变形成一个容易理解的三角形

可以看出每一个数都是上面的三个数的和。
我们可以将原图补全为一个完整的矩形,每一行的元素个数的都是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;}}

这道题关键就在于对于下标的精确把握,稍有不注意就会做错

数组经典题之杨辉三角变形相关推荐

  1. java二维数组杨辉三角_实验----Java的二维数组的应用及杨辉三角的编写

    (1) 编写一个程序,生成一个10*10的二维随机整数数组,并将该数组的每行最大值保存于一个一维数组中,将每列平均值保存于另外一个一维数组中并分别输出. (2) 编程输出杨辉三角的前10行. 找出一个 ...

  2. 利用非数组的方法输出杨辉三角

    大家知道利用数组数组的方法输出杨辉三角是一件比较容易的事情,在许多的教材上都能够找到,而且计算速度比较快,但是有个缺点就是当输出的阶数比较大的时候,需要占用较多的存储空间. 下面我尝试用利用非数组的方 ...

  3. java趣味题-打印杨辉三角

    java趣味题-打印杨辉三角 public class First105 { public static void main(String[] args) {   int [][] a=new int ...

  4. LeetCode简单题之杨辉三角 II

    题目 给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行. 在「杨辉三角」中,每个数是它左上方和右上方的数的和. 示例 1: 输入: rowIndex = 3 输出: [1 ...

  5. 用python编写杨辉三角金字塔_用python实现三道简单算法题:杨辉三角,蛇形矩阵,金字塔...

    分享几道简单的python打印输出的问题,本质上都是可以将其分解成一个大循环之中有几个小循环. 1.杨辉三角 主要特点: 每个数等于它上方两数之和. 每行数字左右对称,由1开始逐渐变大. 每行端点与结 ...

  6. 杨辉三角变形(高效解析)

    题目链接: https://www.nowcoder.com/practice/8ef655edf42d4e08b44be4d777edbf43?tpId=37&&tqId=21276 ...

  7. LeetCode简单题之杨辉三角

    题目 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行. 在「杨辉三角」中,每个数是它左上方和右上方的数的和. 示例 1: 输入: numRows = 5 输出: [[1], ...

  8. leetcode 刷题 119. 杨辉三角II

    给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 3 输出: [1,3,3,1] 解答: class Soluti ...

  9. leetcode 刷题 118. 杨辉三角解题思路

    给定一个非负整数 numRows,生成杨辉三角的前 numRows 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 5 输出: [      [1],     [1,1],   ...

最新文章

  1. blender动画全面学习教程
  2. android 自定义textview 垂直滚动,Android中TextView如何实现水平和垂直滚动
  3. java set 接口_【Java提高十七】Set接口集合详解
  4. 零基础如何学好数据分析?
  5. 《假如编程是魔法之零基础看得懂的Python入门教程 》——(七)我把魔法变成了积木
  6. asp.net后台正则表达式验证手机号码邮箱
  7. Kotlin中定义编译时常量
  8. 计算机恢复失败有杀毒,360安全卫士电脑清理结束不了,系统修复结束不了,木马查杀开始不了,电脑体检结束不了。怎么回事?...
  9. 物件导向比面向对象更准确
  10. 超文本链接html,什么是超文本链接超文本链接有什么用
  11. I219-V 14代 win7x64驱动程序
  12. Apache Camel 了解一下?
  13. 软通动力机考题目汇总
  14. ShellNet:Efficient Point Cloud Convolutional Neural Networks using Concentric Shells Statics
  15. 源码|并发一枝花之ConcurrentLinkedQueue【伪】
  16. Java版CRC8和CRC16工具类
  17. 部署exchange2010三合一:之十:NLB负载均衡先决条件
  18. prometheus安装
  19. Windows下RocketMQ下: VMCould not reserve enough space for 2097152KB object heap
  20. 千寻位置:对话千万粉丝UP主「所长林超」,会激起什么火花?

热门文章

  1. 无盘服务器回写盘intel,无盘回写盘碎片清理工具 完美解决无盘回写盘碎片
  2. linux中printf命令,Linux中printf命令使用实例
  3. thinkpad卡在logo界面_四大系列 一个品牌,超好用的商务伴侣Thinkpad
  4. Adobe illustrator 排版后图形导出这样的Tiff/PNG - 连载 3
  5. 别人运行的好好的R代码,到我这怎么就冲突了?
  6. 电脑音频服务未运行怎么解决_电脑提示音频服务未运行怎么办,快来看看吧,图片描述(最多50字)...
  7. oracle logfile sync,oracle等待事件3构造一个DirectPathwrite等待事件和构造一个LogFileSync等待事件...
  8. c 读取mysql另一个窗体中显示出来_二级ACCESS数据库4窗体的笔试题考点分析
  9. python 怎么设置背景为白色_pycharm怎么将背景颜色设置成白色?
  10. Oracle笔记-USRS01.DBF文件过大,解决办法