这是一个简单题
题目:
思路:
我的代码:主要是运用了一个想法,其实它的每次层都可以由上一层得到,如上如所示,具体方法就是把上一层列表前后加0再相加。我最开始就把每一层的0留着,遍历二维列表将他们相加然后添加到下一层的列表里面去,最后再把0删去。
大神:思路差不多,但是他的代码方法比较好,利用了map,lambda,在一些细节上也处理得比较好,比如加0的操作直接就用列表加上[0].
代码:
我的代码:
1 class Solution(object): 2 def generate(self, n): 3 """ 4 :type numRows: int 5 :rtype: List[List[int]] 6 """ 7 if n == 0: return [] 8 a = [[0] for i in xrange(n)] 9 a[0] = [0,1] 10 for i in xrange(1, n): 11 for j in xrange(len(a[i-1])): 12 a[i].append(a[i-1][j]+a[i-1][len(a[i-1])-j-1]) 13 for i in xrange(n): 14 a[i].pop(0) 15 return a
大神的:
1 def generate(self, numRows): 2 res = [[1]] 3 for i in range(1, numRows): 4 res += [map(lambda x, y: x+y, res[-1] + [0], [0] + res[-1])] 5 return res[:numRows]