网站设计是不是会要用代码做,线下推广费用,信息化工作总结 网站建设,如何建立国际网站前言#xff1a;剑指offer刷题系列
问题#xff1a;
给定一个非负整数 *numRows#xff0c;*生成「杨辉三角」的前 numRows 行。
在「杨辉三角」中#xff0c;每个数是它左上方和右上方的数的和。 示例#xff1a;
输入: numRows 5
输出: [[1],[1,1],[1,2,1],[1,3,3,…前言剑指offer刷题系列
问题
给定一个非负整数 *numRows*生成「杨辉三角」的前 numRows 行。
在「杨辉三角」中每个数是它左上方和右上方的数的和。 示例
输入: numRows 5
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]思路
杨辉三角是小学就学过的一种方法看着还挺熟悉所以没有花费很多时间理解学名叫做 帕斯卡三角形 的数学模型帕斯卡三角形是一个由数字构成的三角形其中每个数字是肩膀上方两个数字之和一直做金字塔下延。
这个函数接受一个名为 numRows 的整数作为输入并返回一个二维列表表示「杨辉三角」的前 numRows 行。下面是详细的思考过程。
首先定义一个名为 Solution 的 Python 类。这个类将包含一个方法 generate它接受一个整数参数 numRows用于指定要生成的行数。方法的返回值将是一个二维列表其中包含了帕斯卡三角形模型的前 numRows 行。在 generate 方法中创建一个空列表 triangle用于存储生成的三角形。使用外层循环 for i in range(numRows) 来控制生成的行数。在每次循环中创建一个空列表 row用于存储当前行的元素。在内层循环 for j in range(1, i) 中通过访问上一行的元素来计算当前行的元素值。具体地说将当前元素设置为上一行中相邻两个元素之和row[j] triangle[i - 1][j - 1] triangle[i - 1][j]。完成内层循环后将当前行 row 添加到 triangle 列表中。外层循环结束后返回存储了帕斯卡三角形模型的二维列表 triangle。
基于上述思考代码如下
class Solution:def generate(self, numRows: int) - List[List[int]]:triangle []for i in range(numRows):row [1] * (i 1)for j in range(1, i):row[j] triangle[i - 1][j - 1] triangle[i - 1][j]triangle.append(row)return triangle执行结果如下图 学到的知识点
学会如何使用帕斯卡三角形模型生成特定行数的三角形。
今天突然发现之前参加的一个活动快要结束了但是我的任务还没有做完要抓紧做一下任务不然自己的心血啊都要泡汤了。