118:Pascal's Triangle 杨辉三角

Given a non-negative integer numRows, generate the first numRows of Pascal's triangle.

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


In Pascal's triangle, each number is the sum of the two numbers directly above it.

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

Example:

Input: 5
Output:
[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]
]

解题思路:

​ 第一行第二行都是1,每行第一个和最后一个都为1,假设其他位置的数x索引坐标是(m,n),则x就是数是它 索引正上方的数和索引正上方的左边的数 之和。即(m-1,n),(m-1,n-1)两数和。

java:

class Solution {public List<List<Integer>> generate(int numRows) {List<List<Integer>> triangle = new ArrayList<List<Integer>>();if(numRows == 0) return triangle;List<Integer> one = new ArrayList<Integer>();one.add(1);triangle.add(one);if(numRows == 1) return triangle;for (int i=1;i<numRows;i++){List<Integer> row = new ArrayList<Integer>();row.add(1);for (int j=1;j<i;j++){List<Integer> prev = triangle.get(i-1);row.add(prev.get(j-1)+prev.get(j));}row.add(1);triangle.add(row);}return triangle;}
}

python:

class Solution:def generate(self, numRows: int) -> List[List[int]]:if numRows==0:return []triangle=[[1]]if numRows==1: return trianglefor i in range(1,numRows):tmp=[1]for j in range(1,i):tmp.append(triangle[i-1][j-1]+triangle[i-1][j])tmp.append(1)triangle.append(tmp)return triangle

总结:

很简单的一道题,可以复习一下java嵌套数组数据结构。另外 可以在内层循环加判断 if(i!=0) row.add(1);triangle.add(row); 在i不等于0时才加上1,这样可省略

List<Integer> one = new ArrayList<Integer>();one.add(1);triangle.add(one);if(numRows == 1) return triangle;

代码段,但是这个 if(i!=0)会在每次进入第一次循环后判断一次。本着减少资源消耗的原则,应当提到外面。

转载于:https://www.cnblogs.com/zhangzhe532/p/11082586.html

Leetcode 118:Pascal's Triangle 杨辉三角相关推荐

  1. C++Pascal‘s Triangle杨辉三角的实现算法

    C++Pascal's Triangle杨辉三角的实现算法 C++Pascal's Triangle杨辉三角的实现算法完整源码(定义,实现,main函数测试) C++Pascal's Triangle ...

  2. leetcode 打印_LeetCode第118号问题:杨辉三角

    本文首发于公众号「五分钟学算法」,是图解 LeetCode 系列文章之一. 个人网站:https://www.cxyxiaowu.com 杨辉三角应该是大家很早就接触到的一个数学知识,它有很多有趣的性 ...

  3. LeetCode:118(Python)—— 杨辉三角(简单)

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

  4. [LeetCode] 118. Pascal's Triangle Java

    题目: Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, ...

  5. LeetCode 118. Pascal’s Triangle

    118. Pascal's Triangle My Submissions QuestionEditorial Solution Total Accepted: 80029 Total Submiss ...

  6. LeetCode 118 Pascal's Triangle(帕斯卡三角形)(vector)

    翻译 给定一个行数字,生成它的帕斯卡三角形.例如,给定numRows = 5, 返回: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1] ] 原文 Given numR ...

  7. 求杨辉三角的前n行数据_两道简单的套公式算法题:杨辉三角

    杨辉三角应该是大家很早就接触到的一个数学知识,它有很多有趣的性质: 每个数字等于上一行的左右两个数字之和,即 C(n+1,i) = C(n,i) + C(n,i-1) 每行数字左右对称,由 1 开始逐 ...

  8. I00001 杨辉三角

    杨辉三角国际上称为Pascal三角形. 杨辉三角与菲波拉契数列也是有关系的,看以下的图就知道了. 这里给出来两种方法的实现,一是使用二维数组来存储杨辉三角,二是使用一维数组来存储杨辉三角并且一边计算一 ...

  9. 杨辉三角java代码_【LeetCode】118. 杨辉三角(Pascal#x27;s Triangle)解题思路

    题目如下(题目链接戳我): 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行. 备注:在杨辉三角中,每个数是它左上方和右上方的数的和.示例: 输入: 5 输出: [[1],[1, ...

最新文章

  1. 计算机基础在小学的教学论文,小学基础教育论文范文
  2. ios 消除 字符串 首尾空格
  3. LeetCode 2135. 统计追加字母可以获得的单词数(位运算+哈希)
  4. 首帧秒开+智能鉴黄+直播答题,阿里云直播系统背后技术大起底
  5. 多软件启动器 v1.0
  6. php url标准化,seo优化教程:链接url标准化操作?
  7. oracle 创建SDO_Geometry表
  8. Angular.js-开发前笔记
  9. Python + Selenium 自动发布文章(一):开源中国
  10. kelley c语言教程 机械工业出版社,北京工业大学2020年考研893软件工程学科专业基础考试大纲...
  11. 可爱的HOOk技术(一)
  12. 校园实践-2015级软工07111501班级-校园二手交易项目组
  13. spring boot添加redis过期策略
  14. 微信小程序 13 排行榜的编写
  15. 磁盘区号 linux,区号
  16. 【ABC 132 E】Hopscotch Addict(最短路)
  17. 《击掌为盟》读后感1742字
  18. Junit Test a getter
  19. Android 9.0 蓝牙通讯录 BluetoothPbapClient
  20. 根据工作日/节假日收货要求计算预计发货时间

热门文章

  1. 《科学》:中国科学家揭示,人脑中间神经元多样性从何而来?
  2. 长二F发射神十二飞船圆满成功!三名航天员飞向空间站天和核心舱
  3. 2021机器智能研究方向
  4. 2019上海车展展后报告(整车篇)
  5. 量子计算何时具有真正的商业价值?
  6. 下一代脑电图可以帮助恢复失去的大脑功能
  7. 魏少军谈AI芯片热潮和架构创新 透露清华Thinker芯片将独立融资
  8. 我招了个“水货”程序员
  9. GitHub 标星 17 万:打破程序员“中年危机”的「编程面试大学」!
  10. 终于!朋友圈可以删除别人评论了……