首页 > 其他分享 >leedcode 杨辉三角-II

leedcode 杨辉三角-II

时间:2024-02-24 19:11:55浏览次数:19  
标签:triangle target temp rowIndex leedcode II 杨辉三角 return append

自己写的:

class Solution:
    def getRow(self, rowIndex: int):
        # 初始化一个列表以存储帕斯卡三角形的行
        li = []

        # 前两行是预定义的
        li.append([1])
        li.append([1, 1])

        # rowIndex为0和1的基本情况
        if rowIndex == 0:
            return [1]
        if rowIndex == 1:
            return [1, 1]

        # rowIndex为2的基本情况
        if rowIndex == 2:
            return [1, 2, 1]

        # 对于rowIndex大于等于3的情况
        if rowIndex >= 3:
            target = 3

            # 持续构建帕斯卡三角形直到目标rowIndex
            while target <= rowIndex + 1:
                temp = [0] * target
                temp[0] = li[target - 2][0]  # 第一个元素与前一行的第一个元素相同
                temp[-1] = li[target - 2][-1]  # 最后一个元素与前一行的最后一个元素相同

                # 通过将前一行的两个相应元素相加来计算中间元素
                for i in range(1, target - 1):  # 从索引1迭代到numrow-2
                    temp[i] = li[target - 2][i - 1] + li[target - 2][i]

                # 将当前行附加到列表中
                li.append(temp)
                target += 1

        # 返回指定rowIndex的行
        return li[rowIndex]

# 示例用法:
s = Solution().getRow(2)
print(s)

gpt改进:

class Solution:
    def getRow(self, rowIndex: int):
        # 初始化一个列表以存储帕斯卡三角形的行
        triangle = []

        # 前两行是预定义的
        triangle.append([1])
        triangle.append([1, 1])

        # 处理基本情况
        if rowIndex == 0:
            return triangle[0]
        elif rowIndex == 1:
            return triangle[1]

        # 从第三行开始构建帕斯卡三角形
        for target in range(2, rowIndex + 1):
            temp = [0] * (target + 1)
            temp[0], temp[-1] = 1, 1  # 设置首尾元素

            # 计算中间元素
            for i in range(1, target):
                temp[i] = triangle[target - 1][i - 1] + triangle[target - 1][i]

            triangle.append(temp)

        # 返回指定rowIndex的行
        return triangle[rowIndex]

# 示例用法:
s = Solution().getRow(2)
print(s)

 

标签:triangle,target,temp,rowIndex,leedcode,II,杨辉三角,return,append
From: https://www.cnblogs.com/yyyjw/p/18031442

相关文章

  • 基于sigma-delta和MASHIII调制器的频率合成器simulink建模与仿真
    1.算法运行效果图预览       其误差当系统进入稳定状态的时候,频率误差就小于1E-9,并且随着频率的增加,其稳定性将更好。 2.算法运行软件版本matlab2022a 3.算法理论概述       频率合成器是现代无线通信系统中的关键组件,用于生成精确且可调的频率信......
  • IIS PUT请求.netcore6.0接口 报HTTP Error 405 - Method Not Allowed
    在新的服务器上部署了一个.netcore的项目,部分请求地址使用了put、delete方式,导致无法正常请求,报Error405-MethodNotAllowed。由于配置IIS时把“WebDAV发布”给勾选了,所以会导致拦截。服务器和IIS10配置如下图:解决方案服务器上删除“WebDAV发布”1、打开“控制面......
  • 代码随想录算法训练营第二十七天 | 90.子集II , 78.子集, 93.复原IP地址
    93.复原IP地址 已解答中等 相关标签相关企业 有效IP地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。例如:"0.1.2.201" 和"192.168.1.1" 是 有效 IP地址,但是 "0.011.255.245"、"1......
  • 同一字母的大小写,ASCII码的低5位是相同的
    按键变更的次数【力扣周赛382】题目描述给你一个下标从0开始的字符串s,该字符串由用户输入。按键变更的定义是:使用与上次使用的按键不同的键。例如s="ab"表示按键变更一次,而s="bBBb"不存在按键变更。返回用户输入过程中按键变更的次数。注意:shift或capslock......
  • 代码随想录算法训练营第二十六天| 39. 组合总和 40.组合总和II 131.分割回文串
    组合总和题目链接:39.组合总和-力扣(LeetCode)思路:依然一是套用回溯模板,但是我们这里用回溯的是i而不是i+1,因为元素可以重复使用,注意for循环里if(sum(path)<=target)的等号不能少。classSolution{public:vector<int>path;vector<vector<int>>result;intsu......
  • leedcode 杨辉三角
    自己写的:classSolution:defgenerate(self,numRows:int):#初始化结果列表,包含帕斯卡三角形的前两行li=[[1],[1,1]]#检查如果numRows为1或2,直接返回对应结果ifnumRows==1:return[[1]]ifnumRows=......
  • 代码随想录算法训练营第二十五天| 216.组合总和III 17.电话号码的字母组合
    组合总和III题目链接:216.组合总和III-力扣(LeetCode)思路:仿照昨天的递归模板写的,同样是for循环横向遍历,递归纵向遍历。注意当k>n时要直接跳出,否则会判断栈溢出。额外发现一个问题就是在累加sum时,用for(autoi:path)sum+=path[i];会出现奇怪数字,原因是auto遍历用法错误,正确写......
  • leedcode 路径的和
    使用迭代:classSolution:defhasPathSum(self,root:Optional[TreeNode],targetSum:int)->bool:#如果根节点为空,直接返回Falseifnotroot:returnFalse#使用栈来进行迭代,每个元素是一个元组(node,path)stack=......
  • day39 动态规划part2 代码随想录算法训练营 63. 不同路径 II
    题目:63.不同路径II我的感悟:题目不难,就是不知道哪个煞笔,把路拦截死了,并且入口就放石头,我真是吐了。理解难点:初始值的遇到障碍要Break其他我写的没错边界考虑:还有入口和出口有障碍物的话,要直接返回0.听课笔记:差不多,考虑的点就是:初始值后面为break开头和结尾有障......
  • 代码随想录算法训练营第二十五天 | 17.电话号码的字母组合 , 216.组合总和III
    216.组合总和III 已解答中等 相关标签相关企业 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:只使用数字1到9每个数字 最多使用一次返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回......