问题描述:输出帕斯卡三角形的指定行。

解决:

这一题与上一题类似,上一题需要输出整个三角形,这里只需要输出指定的一行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相关推荐

  1. 剑指offer:面试题32 - II. 从上到下打印二叉树 II

    题目:从上到下打印二叉树 II 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行. 例如: 给定二叉树: [3,9,20,null,null,15,7], 3    / \ ...

  2. 剑指offer:面试题14- II. 剪绳子 II

    题目:剪绳子 II 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m.n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m] .请问 k[0]* ...

  3. 递归/回溯:Combination Sum II数组之和

    问题如下: 已知一组数(其中有重复元素),求这组数可以组成的所有子集中,子 集中的各个元素和为整数target的子集,结果中无重复的子集. 例如: nums[] = [10, 1, 2, 7, 6, ...

  4. 递归/回溯:Subsets II求子集(有重复元素)

    上一篇描述了针对数组中没有重复元素进行子集的求取过程递归/回溯:subsets求子集 但是当出现如下数组时: 例如: nums[] = [2, 1, 2, 2] 结果为: [[], [1], [1,2 ...

  5. HDU 2080 夹角有多大II

    夹角有多大II Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Su ...

  6. 了解ES6 The Dope Way Part II:Arrow功能和'this'关键字

    by Mariya Diminsky 通过玛丽亚·迪明斯基(Mariya Diminsky) 了解ES6 The Dope Way Part II:Arrow功能和'this'关键字 (Learn E ...

  7. Leetcode 213.大家劫舍II

    打家劫舍II 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金.这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的.同时,相邻的房屋装有相互连通的防盗系统,如果两 ...

  8. 用Quartus II Timequest Timing Analyzer进行时序分析 :实例讲解 (一)

    一,概述 用Altera的话来讲,timequest timing analyzer是一个功能强大的,ASIC-style的时序分析工具.采用工业标准--SDC(synopsys design con ...

  9. 数据结构与算法:04 C#面向对象设计 II

    04 C#面向对象设计 II 知识结构: 5.属性 例1:属性概念的引入(问题) public class Animal {public int Age;public double Weight;pu ...

最新文章

  1. 第三章 Java Servlet基础
  2. 企业网站优化两个重点多加重视!
  3. AIProCon在线大会笔记之华为涂丹丹:华为云EI,行业智能化升级新引擎
  4. 最佳实践丨构建云上私有池(虚拟IDC)的5种方案详解
  5. 怎样和客户一起搞定需求
  6. python 迭代器、生成器、yield、iter
  7. python append函数 循环_Python中循环后使用list.append数据被覆盖问题的解决
  8. D3.js 力导向图来处理拓扑图
  9. This application is only supported on Windows 8.1, Windows Server 2012 R2, or hi gher.
  10. 电脑摄像头未能创建连接服务器,Win7摄像头提示"未能创建视频预览"的原因及解决方法...
  11. SQL SERVER数据库设计与现实
  12. android怎么让图片显示在button上面_opencv怎么样可以实时显示图片HSV值
  13. 让cat命令有颜色得输出文件(ccat)
  14. java编写一个汽车出租管理程序_初学者,写了一个汽车出租管理程序,请大神解决错误。...
  15. 十六、邮件发送 --【转发】本地安装易邮邮箱服务器并用foxmail 连接测试(一)
  16. 最大流(Maximum Flow)
  17. 编译的html帮助文件(.chm)打不开,chm文件无法打开怎么办
  18. 计算机基础(01)基础知识
  19. 进程之间的通信方式有哪些?
  20. mysql中插入数据时Duplicate entry ‘‘ for key ‘PRIMARY‘的解决方案

热门文章

  1. 半小时玩转QT桌面系统托盘(含托盘消息)
  2. html数字滚动动画效果,高效的jquery数字滚动特效
  3. RabbitMQ如何实现延迟队列
  4. 读《商道 胡雪岩》的名言
  5. 拳击 武术java父类,你知道拳击的发力原理是什么吗?---拳世界武术会所
  6. 全球与中国聚丙烯齐格勒-纳塔催化剂市场十四五发展状况及投资风险研究报告2022-2028年
  7. For Kobe Bryant
  8. 真 · 新手入门嵌入式Linux开发(2)查看PCB
  9. 18张图带你详解IP路由表七大要素:路由前缀、协议类型、优先级等
  10. ubuntu14.04经典桌面怎么删除启动器的快捷方式