题目:题目本身不存在问题,生成Pascal三角。

注意:

  ArrayList的使用:

  1、ArrayList申请二维数组。

  ArrayList<ArrayList<Integer>>  result = new ArrayList<ArrayList<Integer>>();

  2、操作:

   ArrayList<Integer> one = new ArrayList<Integer>();
one.add(1);
result.add(one); //在二维List中添加一个List
result.get(0).get(0); //访问第1个List的第1个元素

  3、疑问,为什么使用a.clear()和注释掉的两句,res里的之前add进去的内容会有所改变?

   ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> a = new ArrayList<Integer>();
a.add(1);
res.add(a); a.clear(); //ArrayList<Integer> b = new ArrayList<Integer>();
//a = b;

  答:使用a.clear(),a指向的那块内存区域的值被洗掉,因此res中add进去的内容同步被洗掉。使用注释掉的两个语句,是将a指向了b指向的内存区域,原来指向的内存区域的那块值并没有改变,这也是为什么a的值被清空了,res中add进去的内容不会改变。

代码:

 public ArrayList<ArrayList<Integer>> generate(int numRows) {
ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>(); if(numRows == 0) return result; ArrayList<Integer> pre = new ArrayList<Integer>();
pre.add(1);
result.add(pre);
if (numRows == 1) return result; for(int index = 2 ; index <= numRows ; index++){
ArrayList<Integer> help = new ArrayList<Integer>();
help.add(1);
for(int i = 0 ; i < pre.size() - 1 ; i++){
help.add(pre.get(i) + pre.get(i + 1));
}
help.add(1);
result.add(help); pre = help; //只是改变了pre指向的内容,因此add进result的内容不会改变
}
return result;
}

[leetcode]_Pascal's Triangle的更多相关文章

  1. [leetcode]_Pascal's Triangle II

    题目:Pascal三角的变形,要求只用O(K)的额外空间. 思路:由于Pascal三角中,tri[n][i] = tri[n - 1][i] + tri[n-1][i-1],(通常情况下) 如果已经获 ...

  2. LeetCode:Pascal's Triangle I II

    LeetCode:Pascal's Triangle Given numRows, generate the first numRows of Pascal's triangle. For examp ...

  3. 【LeetCode OJ】Triangle

    Problem Link: http://oj.leetcode.com/problems/triangle/ Let R[][] be a 2D array where R[i][j] (j < ...

  4. leetcode面试准备:Triangle

    leetcode面试准备:Triangle 1 题目 Given a triangle, find the minimum path sum from top to bottom. Each step ...

  5. 【LeetCode】120. Triangle 解题报告(Python)

    [LeetCode]120. Triangle 解题报告(Python) 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址htt ...

  6. [LeetCode] 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, ...

  7. [LeetCode] Pascal's Triangle 杨辉三角

    Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5,Retur ...

  8. LeetCode——Pascal's Triangle

    Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5,Retur ...

  9. [LeetCode 120] - 三角形(Triangle)

    问题 给出一个三角形,找出从顶部至底部的最小路径和.每一步你只能移动到下一行的邻接数字. 例如,给出如下三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 从顶部至底部的最 ...

随机推荐

  1. [ActionScript3.0] 深表复制

    function clone(obj:Object):Object{ var byteArray:ByteArray = new ByteArray(); byteArray.writeObject( ...

  2. Oracle中常用操作

    查看表中的字段名和类型 SELECT column_name,DATA_TYPE FROM cols WHERE TABLE_NAME=upper('tableName') ORDER BY COLU ...

  3. DBCP数据库连接池

    在用JDBC连接数据库的时候,需要创建对数据库的连接,这样才能执行后续的操作.然而,这样做有两个问题: 数据库允许的连接个数有限 创建连接的过程需要消耗内存和时间 所以,JDBC引入了连接池的概念.也 ...

  4. php中引用符号(&)的使用详解

    php的引用就是在变量或者函数.对象等前面加上&符号,在PHP 中引用的意思是:不同的名字访问同一个变量内容,下面介绍如何使用PHP的引用 与C语言中的指针是有差别的.C语言中的指针里面存储的 ...

  5. The Ninth Hunan Collegiate Programming Contest (2013) Problem H

    Problem H High bridge, low bridge Q: There are one high bridge and one low bridge across the river. ...

  6. vc 递归删除非空文件夹

    我觉得这是一个非常不错的递归例子 头文件 #pragma once #include <atlstr.h> #include <io.h> #include <strin ...

  7. unity两点之间抛物线,完美金手指

    学校享受的日子一去不复还了,呜呜.话说面试了几个公司,真心没准备好就上了,结果当然是小悲催.还好有容身之处,就算是搬砖,也有可能为自己盖楼,吼吼. 好,下面我来分享一道有意思的面试题,说他有意思,是因 ...

  8. NOIP2003 传染病防治

    描述 研究表明,这种传染病的传播具有两种很特殊的性质:第一是它的传播途径是树型的,一个人X只可能被某个特定的人Y感染,只要Y不得病,或者是XY之间的传播途径被切断,则X就不会得病. 第二是,这种疾病的 ...

  9. javascript代码复用模式

    代码复用有一个著名的原则,是GoF提出的:优先使用对象组合,而不是类继承.在javascript中,并没有类的概念,所以代码的复用,也并不局限于类式继承.javascript中创建对象的方法很多,有构 ...

  10. web关键词搜索高亮代码

    <script type="text/javascript"> /* * 参数说明: * obj: 对象, 要进行高亮显示的html标签节点. * hlWords: 字 ...