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

leedcode 杨辉三角

时间:2024-02-23 16:35:37浏览次数:37  
标签:return leedcode numRows result 杨辉三角 append row

自己写的:

class Solution:
    def generate(self, numRows: int):
        # 初始化结果列表,包含帕斯卡三角形的前两行
        li = [[1], [1, 1]]

        # 检查如果numRows为1或2,直接返回对应结果
        if numRows == 1:
            return [[1]]
        if numRows == 2:
            return [[1], [1, 1]]

        # 如果numRows大于等于3
        if numRows >= 3:
            target = 3  # 从第三行开始
            while target <= numRows:
                # 创建一个临时列表,所有元素初始化为0
                temp = [0] * target
                
                # 根据前一行赋值临时列表的首尾元素
                temp[0] = li[target - 2][0]
                temp[-1] = li[target - 2][-1]

                # 使用前一行计算临时列表的中间元素
                for i in range(1, target - 1):  # 循环遍历位置在[1, target-2]之间的元素
                    temp[i] = li[target - 2][i - 1] + li[target - 2][i]

                # 将新生成的行添加到结果列表
                li.append(temp)

                # 移动到下一行
                target += 1

        # 返回最终的结果列表
        return li

gpt提供的:

class Solution:
    def generate(self, numRows: int):
        if numRows == 0:
            return []
        
        result = [[1]]
        
        for i in range(1, numRows):
            row = [1]  # 每行的第一个元素始终为1
            for j in range(1, i):
                row.append(result[i - 1][j - 1] + result[i - 1][j])
            row.append(1)  # 每行的最后一个元素始终为1
            result.append(row)
        
        return result

 

标签:return,leedcode,numRows,result,杨辉三角,append,row
From: https://www.cnblogs.com/yyyjw/p/18029847

相关文章

  • leedcode 路径的和
    使用迭代:classSolution:defhasPathSum(self,root:Optional[TreeNode],targetSum:int)->bool:#如果根节点为空,直接返回Falseifnotroot:returnFalse#使用栈来进行迭代,每个元素是一个元组(node,path)stack=......
  • leedcode 二叉树的最小深度
    自己写的:#二叉树节点的定义classTreeNode:def__init__(self,val=0,left=None,right=None):self.val=valself.left=leftself.right=rightclassSolution:defminDepth(self,root:Optional[TreeNode])->int:#......
  • leedcode 平衡二叉树
    对称二叉树走不通  201/228 个通过的测试用例classSolution:defisBalanced(self,root:Optional[TreeNode])->bool:queue=[root]ifnotroot:returnTrueifnotroot.leftandnotroot.right:returnTr......
  • leedcode 对称二叉树
    迭代法:#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolution:defisSymmetric(self,root):......
  • leedcode 二叉树的中序遍历
    自己写的classSolution:def__init__(self):self.res_list=list()definorderTraversal(self,root):ifroot:ifroot==None:returnelse:self.inorderTraversal(root.left)......
  • leedcode 合并两个有序数组 切片 原地修改
    使用nums1[:m+n]=nums1_new时,这是在原地修改nums1列表。具体来说,这个语句使用切片将nums1中前m+n个元素替换为nums1_new中的元素。这样做的结果是,nums1的原始内存空间被修改,而不是创建一个新的列表对象。使用nums1=nums1_new,这将创建一个新的列表对象,并让nu......
  • leedcode x的平方根
    暴力搜索classSolution:defmySqrt(self,x:int)->int:ifx>=100andx<10000:i=10elifx>=10000andx<1000000:i=100elifx>=1000000:i=1000else:i=0......
  • leedcode 二进制求和
    自己写的classSolution:defaddBinary(self,a:str,b:str)->str:a_len=len(a)b_len=len(b)ifa_len<b_len:temp=bb=aa=tempa_len=len(a)b_len=len(b)b_li......
  • leedcode 找出字符串中第一个匹配项的下标
    自己写的classSolution:defstrStr(self,haystack:str,needle:str)->int:haystack_len=len(haystack)needle_len=len(needle)ifhaystack==needle:return0ifhaystack_len<needle_len:......
  • leedcode 移除元素
    自己写的:classSolution:#122334defremoveElement(self,nums,val):numms_len=len(nums)ifnumms_len==0:returnnumms_leni=0whilei<numms_len:ifnums[i]==val:......