【LeetCode】Pascal's Triangle II 解题报告
2024-10-16 09:43:30
【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 日
最新文章
- 浅谈Android中layout_weight
- jquery插件学习之元素顶部悬浮
- Techparty-广州 10 月 31 日 Docker 专场沙龙 后记
- Linux最常用命令之cd和ls
- HTTPS的一些疑问解答
- Spring触发器配置Quartz
- IBatis.net介绍
- [Effective Java]第八章 通用程序设计
- 解决 placeholder 垂直不居中,偏上的问题
- nbIoT基础概念
- 自学了三天的SeaJs学习,解决了前端的一些问题,与小伙伴们一起分享一下!
- new String(byte[])和byte[]toString() 的区别
- ansj 2.0.7 错误例子分析
- 初步了解,vue的转发机制(proxyTable)
- java基础知识点罗列
- Spark面对OOM问题的解决方法及优化总结 (转载)
- LinkedList、Stack、Queue、PriorityQueue的总结
- 图形界面至少要有一个顶级Swing容器
- 剑客vs刀客 Java vs .NET
- [svc]influxdb+grafana实战-各省份api访问成功率统计
热门文章
- python 新闻管理系统——启示
- dart系列之:HTML的专属领域,除了javascript之外,dart也可以
- accommodate, accompany
- Vue 之keep-alive的使用,实现页面缓存
- linux修改文件权限命令
- Flask + Nginx + uwsgi 部署过程
- 【编程思想】【设计模式】【结构模式Structural】桥梁模式/桥接模式bridge
- 【Java 基础】Java Enum
- jQuery中的html()、text()和val()的用法
- CPU的中断