PascalTriangel II
问题描述:输出帕斯卡三角形的指定行。
解决:
这一题与上一题类似,上一题需要输出整个三角形,这里只需要输出指定的一行k。要求空间复杂度为o(k),上一题求出cur行是通过计算pre的元素得到的,
这题因为空间复杂度的要求,只能用cur这一个引用。如果仍然像上一题的做法来做,会出现元素覆盖问题。举例,给[1, 2, 1],算下一行,那么依次该行的变化
过程是[1, 3, 1]->[1, 3, 4]—>[1, 3, 4, 1],显然不对的。这是因为当cur[i]不为首尾元素时,cur[i] = cur[i-1] + cur[i],cur[i+1] = cur[i] + cur[i+1]
此时cur[i]已经是新的值了,cur[i+1]计算出来不正确。但是如果我们从后往前算,cur[i] = cur[i-1] + cur[i],cur[i-1] = cur[i-2] + cur[i-1]。
新计算出的元素cur[i],在计算cur[i-1]时并没有起到作用。保证了每一个元素计算出来都是正确的。
/** Given an index k, return the kth row of the Pascal's triangle.For example, given k = 3,
Return [1,3,3,1].*/
import java.util.ArrayList;
import java.util.List;public class PascalTriangelII {public List<Integer> getRow(int rowIndex) {List<Integer> res = new ArrayList<Integer>();if(rowIndex < 0) return res;res.add(1);for(int i=1; i<=rowIndex; i++) { //要求出第rowIndex行,需进行rowIndex次操作for(int j=res.size()-2; j>=0; j--) {res.set(j+1, res.get(j)+res.get(j+1));}res.add(1);}return res;}
}
PascalTriangel II相关推荐
- 剑指offer:面试题32 - II. 从上到下打印二叉树 II
题目:从上到下打印二叉树 II 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行. 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ ...
- 剑指offer:面试题14- II. 剪绳子 II
题目:剪绳子 II 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m.n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m] .请问 k[0]* ...
- 递归/回溯:Combination Sum II数组之和
问题如下: 已知一组数(其中有重复元素),求这组数可以组成的所有子集中,子 集中的各个元素和为整数target的子集,结果中无重复的子集. 例如: nums[] = [10, 1, 2, 7, 6, ...
- 递归/回溯:Subsets II求子集(有重复元素)
上一篇描述了针对数组中没有重复元素进行子集的求取过程递归/回溯:subsets求子集 但是当出现如下数组时: 例如: nums[] = [2, 1, 2, 2] 结果为: [[], [1], [1,2 ...
- HDU 2080 夹角有多大II
夹角有多大II Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...
- 了解ES6 The Dope Way Part II:Arrow功能和'this'关键字
by Mariya Diminsky 通过玛丽亚·迪明斯基(Mariya Diminsky) 了解ES6 The Dope Way Part II:Arrow功能和'this'关键字 (Learn E ...
- Leetcode 213.大家劫舍II
打家劫舍II 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金.这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的.同时,相邻的房屋装有相互连通的防盗系统,如果两 ...
- 用Quartus II Timequest Timing Analyzer进行时序分析 :实例讲解 (一)
一,概述 用Altera的话来讲,timequest timing analyzer是一个功能强大的,ASIC-style的时序分析工具.采用工业标准--SDC(synopsys design con ...
- 数据结构与算法:04 C#面向对象设计 II
04 C#面向对象设计 II 知识结构: 5.属性 例1:属性概念的引入(问题) public class Animal {public int Age;public double Weight;pu ...
最新文章
- 第三章 Java Servlet基础
- 企业网站优化两个重点多加重视!
- AIProCon在线大会笔记之华为涂丹丹:华为云EI,行业智能化升级新引擎
- 最佳实践丨构建云上私有池(虚拟IDC)的5种方案详解
- 怎样和客户一起搞定需求
- python 迭代器、生成器、yield、iter
- python append函数 循环_Python中循环后使用list.append数据被覆盖问题的解决
- D3.js 力导向图来处理拓扑图
- This application is only supported on Windows 8.1, Windows Server 2012 R2, or hi gher.
- 电脑摄像头未能创建连接服务器,Win7摄像头提示"未能创建视频预览"的原因及解决方法...
- SQL SERVER数据库设计与现实
- android怎么让图片显示在button上面_opencv怎么样可以实时显示图片HSV值
- 让cat命令有颜色得输出文件(ccat)
- java编写一个汽车出租管理程序_初学者,写了一个汽车出租管理程序,请大神解决错误。...
- 十六、邮件发送 --【转发】本地安装易邮邮箱服务器并用foxmail 连接测试(一)
- 最大流(Maximum Flow)
- 编译的html帮助文件(.chm)打不开,chm文件无法打开怎么办
- 计算机基础(01)基础知识
- 进程之间的通信方式有哪些?
- mysql中插入数据时Duplicate entry ‘‘ for key ‘PRIMARY‘的解决方案
热门文章
- 半小时玩转QT桌面系统托盘(含托盘消息)
- html数字滚动动画效果,高效的jquery数字滚动特效
- RabbitMQ如何实现延迟队列
- 读《商道 胡雪岩》的名言
- 拳击 武术java父类,你知道拳击的发力原理是什么吗?---拳世界武术会所
- 全球与中国聚丙烯齐格勒-纳塔催化剂市场十四五发展状况及投资风险研究报告2022-2028年
- For Kobe Bryant
- 真 · 新手入门嵌入式Linux开发(2)查看PCB
- 18张图带你详解IP路由表七大要素:路由前缀、协议类型、优先级等
- ubuntu14.04经典桌面怎么删除启动器的快捷方式