leedcode 杨辉三角-II

自己写的:

复制代码
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)
复制代码

 

posted @   Junior_bond  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示