内容简介:Given a non-negative integer给定一个非负整数
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 triangle
for 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) 会在每次进入第一次循环后判断一次。本着减少资源消耗的原则,应当提到外面。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- C语言打印杨辉三角代码及解析
- LeetCode每日一题: 杨辉三角(No.118)
- LeetCode - 118 - 杨辉三角(pascals-triangle)
- LeetCode - 119 - 杨辉三角II(pascals-triangle-ii)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
汇编语言(第2版)
王爽 / 清华大学出版社 / 2008-4 / 33.00元
《汇编语言(第2版)》是各种CPU提供的机器指令的助记符的集合,人们可以用汇编语言直接控制硬件系统进行工作。汇编语言是很多相关课程(如数据结构、操作系统、微机原理等)的重要基础。为了更好地引导、帮助读者学习汇编语言,作者以循序渐进的思想精心创作了《汇编语言(第2版)》。《汇编语言(第2版)》具有如下特点:采用了全新的结构对课程的内容进行组织,对知识进行最小化分割,为读者构造了循序渐进的学习线索;在......一起来看看 《汇编语言(第2版)》 这本书的介绍吧!