【LeetCode】Pascal’s Triangle II 解题报告

标签(空格分隔): LeetCode


题目地址:https://leetcode.com/problems/pascals-triangle-ii/description/

题目描述:

Given an index k, return the kth row of the Pascal’s triangle.

For example, given k = 3,
Return [1,3,3,1].

Note:
Could you optimize your algorithm to use only O(k) extra space?

Ways

杨辉三角。这个题之前用java做过,不过现在改用python重新刷。

杨辉三角的算法是上层的两个相邻的数字相加得到该层的数字。其实可以看做下面这种方式相加:

[1]
[1,1]=[0,1]+[1,0]
[1,2,1]=[0,1,1]+[1,1,0]
[1,3,3,1]=[0,1,2,1]+[1,2,1,0]
......

即上面一层的在首尾分别添加上0之后再对应相加。这样就可以先生成后面的两个首尾加0的列表,再用列表生成式对应位置相加计算出来每层的元素。

"""@author: fuxuemingzhu"""
class Solution(object):
def getRow(self, rowIndex):
"""
:type rowIndex: int
:rtype: List[int]
"""
answer = [1]
for _ in xrange(rowIndex):
answer = [x + y for x,y in zip([0] + answer, answer + [0])]
return answer

Date

2017 年 8 月 28 日

最新文章

  1. 浅谈Android中layout_weight
  2. jquery插件学习之元素顶部悬浮
  3. Techparty-广州 10 月 31 日 Docker 专场沙龙 后记
  4. Linux最常用命令之cd和ls
  5. HTTPS的一些疑问解答
  6. Spring触发器配置Quartz
  7. IBatis.net介绍
  8. [Effective Java]第八章 通用程序设计
  9. 解决 placeholder 垂直不居中,偏上的问题
  10. nbIoT基础概念
  11. 自学了三天的SeaJs学习,解决了前端的一些问题,与小伙伴们一起分享一下!
  12. new String(byte[])和byte[]toString() 的区别
  13. ansj 2.0.7 错误例子分析
  14. 初步了解,vue的转发机制(proxyTable)
  15. java基础知识点罗列
  16. Spark面对OOM问题的解决方法及优化总结 (转载)
  17. LinkedList、Stack、Queue、PriorityQueue的总结
  18. 图形界面至少要有一个顶级Swing容器
  19. 剑客vs刀客 Java vs .NET
  20. [svc]influxdb+grafana实战-各省份api访问成功率统计

热门文章

  1. python 新闻管理系统——启示
  2. dart系列之:HTML的专属领域,除了javascript之外,dart也可以
  3. accommodate, accompany
  4. Vue 之keep-alive的使用,实现页面缓存
  5. linux修改文件权限命令
  6. Flask + Nginx + uwsgi 部署过程
  7. 【编程思想】【设计模式】【结构模式Structural】桥梁模式/桥接模式bridge
  8. 【Java 基础】Java Enum
  9. jQuery中的html()、text()和val()的用法
  10. CPU的中断