leetcode 118 杨辉三角 python

杨辉三角  一开始自己使用的方法 1 class Solution:
 2     def generate(self, numRows):
 3         """
 4         :type numRows: int
 5         :rtype: List[List[int]]
 6         """
 7         if numRows == 0:
 8             return []
 9         elif numRows == 1:
10             return [[1]]
11         elif numRows == 2:
12             return [[1], [1, 1]]
13         else:
14             triangle = [[1],[1,1]]
15             for i in range(2, numRows):
16                 triangle.append([])
17                 triangle[i].append(1)
18                 for j in range(1, i):
19                     triangle[i].append(triangle[i - 1][j - 1] + triangle[i - 1][j])
20                 triangle[i].append(1)
21             return triangle了解了python的生成器后重写了一下
class Solution:
    def generate(self, numRows):
        """
        :type numRows: int
        :rtype: List[List[int]]
        """
        def rowGenerator():
            row = [1]
            while True:
                yield(row)
                row = [1] + [row[k] + row[k + 1] for k in range(len(row) - 1)] + [1]

        listn = rowGenerator()
        a = []
        while numRows > 0:
            a.append(next(listn))
            numRows -= 1
        return a


原文地址:https://www.cnblogs.com/feyfree/p/9743186.html

时间: 2024-10-09 16:40:23

leetcode 118 杨辉三角 python的相关文章

118. 杨辉三角

118. 杨辉三角 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ] class Solution { public List<List<Integer>> generate(int row) { List<List<Integer>> lists = new L

LeetCode【118. 杨辉三角】

首先,这个杨辉三角用C语言很好写,关键就在于明白,第一个与最后一个永远是1,同时,第三行开始,中间的数就是上方两个相加. a[ i ][ j ] = a[ i - 1 ][ j - 1 ]+a[ i - 1 ][ j ] 对于JAVA List< List<Integer> > res = new ArrayList< List<Integer> >(); List<Integer> t = new ArrayList<>(); Li

一个超强的杨辉三角python实现方法

廖雪峰Python教程——生成器 有这么一个习题: 练习 杨辉三角定义如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 把每一行看做一个list,试写一个generator,不断输出下一行的list: # -*- coding: utf-8 -*- def triangles(): 在评论里发现这么一个强大的答案: 1 N = [1] 2 while True: 3 yield N 4 N.append(0) 5 N = [N[i-1] + N[i]

C语言118. 杨辉三角

给定一个非负整数 numRows,生成杨辉三角的前 numRows 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]] 下面是我的常规解法:没有用到指针,但是力扣上的返回类型是这样的 :int** generate(int numRows, int* returnSize, int** returnColumnSizes) #include <stdio.h>int mai

杨辉三角python的最佳实现方式,牛的不能再牛了

def triangles(): N = [1] while True: yield N N.append(0) N = [N[i-1] + N[i] for i in range(len(N))] n = 0for t in triangles(): print(t) n = n + 1 if n == 10: break 廖雪峰老师出的题 原文地址:https://www.cnblogs.com/xiangpiaopiao2011/p/9300792.html

打印杨辉三角—Python

b=[] for i in range(0,9): c=[] for j in range(0,i): if j==0: c.append(b[i-1][j]) if j<=i-2:#执行完第一个if,接着执行第二个if c.append(b[i-1][j]+b[i-1][j+1]) c.append(1)#每次循环结束b列表尾部添加1 b.append(c) # print(b) for i in b: for k in i: print(k,end=" ") print()

Leecode刷题之旅-C语言/python-118杨辉三角

/* * @lc app=leetcode.cn id=118 lang=c * * [118] 杨辉三角 * * https://leetcode-cn.com/problems/pascals-triangle/description/ * * algorithms * Easy (60.22%) * Total Accepted: 17.6K * Total Submissions: 29.2K * Testcase Example: '5' * * 给定一个非负整数 numRows,生成

[LeetCode] 118. Pascal&#39;s Triangle 杨辉三角

Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5,Return [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ] 杨辉三角形,又称贾宪三角形.帕斯卡三角形.海亚姆三角形.巴斯卡三角形,是二项式系数在的一种写法,形似三角形,在中国首现于南宋杨辉的<详解九章算术>得名,书中杨辉说明是引自贾宪的<释锁算术>

leetCode 118. Pascal&#39;s Triangle 数组 (杨辉三角)

118. Pascal's Triangle Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5,Return [      [1],     [1,1],    [1,2,1],   [1,3,3,1],  [1,4,6,4,1] ] 题目大意: 输入行数,输出如上图所示的数组.(杨辉三角) 思路: 用双vector来处理当前行和下一行. 代码如下: cla