博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Pascal's Triangle
阅读量:5046 次
发布时间:2019-06-12

本文共 1878 字,大约阅读时间需要 6 分钟。

问题描述

 

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]]

 

解决思路

初始条件 + 循环控制。

 

程序

public class Solution {    public List
> generate(int numRows) { List
> res = new ArrayList
>(); if (numRows <= 0) { return res; } List
list = new ArrayList
(); list.add(1); res.add(list); if (numRows == 1) { return res; } list = new ArrayList
(); list.add(1); list.add(1); res.add(list); if (numRows == 2) { return res; } for (int i = 2; i < numRows; i++) { List
tmp = res.get(i - 1); List
add = new ArrayList
(); add.add(1); for (int j = 0; j < i - 1; j++) { add.add(tmp.get(j) + tmp.get(j + 1)); } add.add(1); res.add(add); } return res; }}

 

Follow up

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? 

 

解决思路

辅助的中间list存上一个list的结果。交替进行。

 

程序

public class Solution {    public List
getRow(int rowIndex) { List
row = new ArrayList
(); if (rowIndex < 0) { return row; } row.add(1); if (rowIndex == 0) { return row; } row.add(1); if (rowIndex == 1) { return row; } List
tmp = new ArrayList
(row); int i = 2; while (i <= rowIndex) { int mids = i - 1; row = new ArrayList
(); row.add(1); for (int j = 0; j < mids; j++) { row.add(tmp.get(j) + tmp.get(j + 1)); } row.add(1); tmp = new ArrayList
(row); ++i; } return row; }}

  

转载于:https://www.cnblogs.com/harrygogo/p/4672404.html

你可能感兴趣的文章
UIActionSheet 修改字体颜色
查看>>
Vue 框架-01- 入门篇 图文教程
查看>>
Spring注解之@Lazy注解,源码分析和总结
查看>>
多变量微积分笔记24——空间线积分
查看>>
Magento CE使用Redis的配置过程
查看>>
poi操作oracle数据库导出excel文件
查看>>
(转)Intent的基本使用方法总结
查看>>
Mac 下的Chrome 按什么快捷键调出页面调试工具
查看>>
Windows Phone开发(24):启动器与选择器之发送短信
查看>>
JS截取字符串常用方法
查看>>
Google非官方的Text To Speech和Speech Recognition的API
查看>>
stdext - A C++ STL Extensions Libary
查看>>
Django 内建 中间件组件
查看>>
bootstrap-Table服务端分页,获取到的数据怎么再页面的表格里显示
查看>>
进程间通信系列 之 socket套接字及其实例
查看>>
天气预报插件
查看>>
Unity 游戏框架搭建 (十三) 无需继承的单例的模板
查看>>
模块与包
查看>>
mysql忘记root密码
查看>>
apache服务器中设置目录不可访问
查看>>