本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41851069

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?

思路:

(1)这道算法题是Pascal's Triangle的改进版。如果知道Pascal's Triangle如何解答,那么这道题也就很简单了。

(2)不同的是,这道题的起始位置是从0开始,需要特别注意下。

(3)本文的思路和Pascal's Triangle思路基本一样(Pascal's Triangle请详见http://blog.csdn.net/pistolove/article/details/41827325),Pascal's Triangle结果是要给出每一行的数字,这道题仅仅给出num所在行的数字。本文是通过遍历2-num行(0行和1行特殊处理),每遍历一行就将该行的数字存到链表中,当遍历完该行的下一行时,将下一行的数字替换上一行的数字,遍历完所有行,最后得到链表中的数字就是结果。

(4)需要注意的是:本文的空间复杂度不是O(K),而是在O(K)和O(2K)之间,如果想要空间复杂度为O(K),则需申请一个K大小的数组,并在遍历的过程中依次替换每行中间的数字,其实也不难实现,感兴趣可以研究下,对自己也有提高。

(5)希望本文能对你有所帮助。有问题可留言,我会尽快回复。谢谢。

算法代码实现如下所示:

public static List<Integer> getSingle(int num){
	List<Integer> row = new LinkedList<Integer>();
	if(num==0){
		row.add(1);
		return row;
	}

	if(num==1){
		row.add(1);
		row.add(1);
		return row;
	}

	if(num>1){
		row.add(1);
		row.add(1);
		for (int i=2; i <= num; i++) {
			List<Integer> temp = new LinkedList<Integer>();
			for (int j = 0; j < i+1; j++) {
				if(j==0)
					temp.add(1);
				if(j==i)
					temp.add(1);
				if(j!=0 && j!=i){
					temp.add(row.get(j-1)+row.get(j));
				}
			}
			row=temp;
		}
	}
	return row;
}

Leetcode_119_Pascal's Triangle II的更多相关文章

  1. 28. Triangle && Pascal's Triangle && Pascal's Triangle II

    Triangle Given a triangle, find the minimum path sum from top to bottom. Each step you may move to a ...

  2. 【LeetCode】118 & 119 - Pascal's Triangle & Pascal's Triangle II

    118 - Pascal's Triangle Given numRows, generate the first numRows of Pascal's triangle. For example, ...

  3. Pascal's Triangle,Pascal's Triangle II

    一.Pascal's Triangle Given numRows, generate the first numRows of Pascal's triangle. For example, giv ...

  4. 杨辉三角形II(Pascal's Triangle II)

    杨辉三角形II(Pascal's Triangle II) 问题 给出一个索引k,返回杨辉三角形的第k行. 例如,给出k = 3,返回[1, 3, 3, 1] 注意: 你可以优化你的算法使之只使用O( ...

  5. LeetCode OJ 119. Pascal's Triangle II

    Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3,Return [1,3, ...

  6. 118/119. Pascal's Triangle/II

    原文题目: 118. Pascal's Triangle 119. Pascal's Triangle II 读题: 杨辉三角问题 '''118''' class Solution(object): ...

  7. LeetCode: Pascal's Triangle II 解题报告

    Pascal's Triangle II Total Accepted: 19384 Total Submissions: 63446 My Submissions Question Solution ...

  8. 学会从后往前遍历,例 [LeetCode] Pascal's Triangle II,剑指Offer 题4

    当我们需要改变数组的值时,如果从前往后遍历,有时会带来很多麻烦,比如需要插入值,导致数组平移,或者新的值覆盖了旧有的值,但旧有的值依然需要被使用.这种情况下,有时仅仅改变一下数组的遍历方向,就会避免这 ...

  9. LeetCode Pascal's Triangle && Pascal's Triangle II Python

    Pascal's Triangle Given numRows, generate the first numRows of Pascal's triangle. For example, given ...

随机推荐

  1. 文件操作(open\read\write\close)

    为了方便演示,我们建立了一个示范文本,如下所示: hello,我是代码螺丝钉 test1 test2 test3 文件的读 f = open("示范文本","r" ...

  2. 关于java的Synchronized,你可能需要知道这些(上)

    对于使用java同学,synchronized是再熟悉不过了.synchronized是实现线程同步的基本手段,然而底层实现还是通过锁机制来保证,对于被synchronized修饰的区域每次只有一个线 ...

  3. 20160227.CCPP体系详解(0037天)

    程序片段(01):01.一对一模式.c+02.中介者模式.c+03.广播模式.c 内容概要:事件 ///01.一对一模式.c #include <stdio.h> #include < ...

  4. OpenResty 执行阶段的概念和用途

    主要还是 Nginx 的执行阶段知识了,都是因为 OR 才会那么深刻, 它有些自己的阶段. 主要还是参照 春哥的 Nginx 教程 请多读几遍,如果不清楚nginx的执行阶段就无法充分利用 openr ...

  5. Native Hibernate与Hibernate JPA

    本文作者:苏生米沿 本文地址:http://blog.csdn.net/sushengmiyan/article/details/50182005 翻译来源:http://stackoverflow. ...

  6. Swift 3中新的访问控制关键字fileprivate和open

    在Swift 3中除去原有的3个访问控制关键字private,public,internal,又添加了2个关键字fileprivate和open 它们可以看成是对private和public的进一步细 ...

  7. Android Multimedia框架总结(二十二)MediaCodec中C++中创建到start过程及状态变换

    上一章介绍MediaCodec中创建到start过程(到jni部分),从今天开始,将深入源码中看看其c++过程,看下Agenda如下: mediacodec.h CreateByType initMe ...

  8. 探究java接口中的变量与方法

    关于变量 java接口里的变量都是默认 pubic static final的 为啥? public 接口得能被所有对象调用 static 这个变量是属于接口本身,而不是实现了接口的对象的 具体来说  ...

  9. tomcat启动批处理——catalina.bat

    这个批处理才是tomcat服务器启动跟关闭的核心脚本.其中包括....(各种变量),此节将详细讲解这个批处理的逻辑. 先看看第一部分脚本: ****************************** ...

  10. Cocos2D实现RPG队伍菜单任意调整角色顺序的效果

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 前一篇我们实现了队伍实现拖尾效果,但是在实际游戏中我们往往需要 ...