作者: 负雪明烛
id: fuxuemingzhu
个人博客: http://fuxuemingzhu.cn/


[LeetCode]

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

Total Accepted: 83023 Total Submissions: 247907 Difficulty: Easy

题目描述

Given a non-negative integer numRows, generate the first numRows of Pascal’s triangle.

In Pascal’s triangle, each number is the sum of the two numbers directly above it.

Example:

Input: 5
Output:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]

题目大意

杨辉三角。

解题方法

Java解法

智商呀!智商!大一的题竟然纠结的有一个小时!

最后找到错误的根源在于第10行的temp=new ArrayList();之前写的是temp.clear();
这样的问题是clear()之后那个temp还在用,就是说如果下次修改temp的话会把原来已经放进去的给改了。

所以java基础很重要!

public class Solution {
public List<List<Integer>> generate(int numRows) {
if(numRows<=0) return new ArrayList();
List<List<Integer>> answer=new ArrayList();
List<Integer> temp=new ArrayList();
temp.add(1);
answer.add(temp);
if(numRows==1) return answer;
for(int i=2;i<=numRows;i++){
temp=new ArrayList();
for(int j=0;j<i;j++){
if(j==0 || j==i-1){
temp.add(1);
}else{
temp.add(answer.get(i-2).get(j-1) + answer.get(i-2).get(j));
}
}
answer.add(temp);
}
return answer;
}
}

AC:2ms

Python解法

二刷的时候采用的Python解法,而且我一遍就AC了,看到了两年前的答案还是觉得自己进步了的。

使用的方法是提前构造好三角形,然后再遍历每行的中间位置是上面两行的和即可。

class Solution(object):
def generate(self, numRows):
"""
:type numRows: int
:rtype: List[List[int]]
"""
res = [[1 for j in range(i)] for i in range(1, numRows + 1)]
for i in range(2, numRows):
for j in range(1, i):
res[i][j] = res[i - 1][j - 1] + res[i - 1][j]
return res

日期

2016 年 05月 8日
2018 年 11 月 19 日 —— 周一又开始了

最新文章

  1. SQL Server 事务日志传输
  2. 转载:稀疏矩阵存储格式总结+存储效率对比:COO,CSR,DIA,ELL,HYB
  3. 通过组策略实现IE自动以当前域账号登录某站点
  4. 移动开发 android 入门开发 阶段视频
  5. CentOS 6安装mock
  6. jquery 事件绑定(1)
  7. hdu2126(求方案数的01背包)
  8. 一步一步Asp.Net MVC系列_权限管理设计
  9. [phpvia/via] PHP多进程服务器模型中的惊群
  10. 第一个Polymer应用 - (2)创建你自己的元素
  11. Python 练习——计算1-2+3-4...+99
  12. RabbitMQ 官方demo1
  13. 图解HTTP学习笔记
  14. redis入门知识汇总
  15. gdb带参调试
  16. (网页)JS中的小技巧,但十分的实用!
  17. ElasticSearch 2 (36) - 信息聚合系列之显著项
  18. no-referrer-when-downgrade什么意思
  19. Kafka(四)Kafka在zookeeper中的存储
  20. Java之I/O流(第1部分)

热门文章

  1. 学习java的第八天
  2. abandon, abbreviation
  3. [PE]结构分析与代码实现
  4. Dubbo服务分组
  5. 【Linux】【Services】【Package】rpm包制作
  6. Spring 与 SpringBoot 的区别
  7. 测试JDBCUtils的重用性
  8. java中关于string类和常量池的一点猜想
  9. 2、Redis的安装
  10. Reids安全加固