• [leetcode]_Pascal's Triangle


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

    注意:

      ArrayList的使用:

      1、ArrayList申请二维数组

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

      2、操作:

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

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

    1   ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>();
    2   ArrayList<Integer> a = new ArrayList<Integer>();
    3   a.add(1);
    4   res.add(a);
    5         
    6   a.clear();
    7         
    8   //ArrayList<Integer> b = new ArrayList<Integer>();
    9   //a = b;

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

    代码:

     1 public ArrayList<ArrayList<Integer>> generate(int numRows) {
     2        ArrayList<ArrayList<Integer>>  result = new ArrayList<ArrayList<Integer>>();
     3        
     4        if(numRows == 0) return result;
     5        
     6        ArrayList<Integer> pre = new ArrayList<Integer>();
     7        pre.add(1);
     8        result.add(pre);
     9        if (numRows == 1) return result;
    10        
    11        for(int index = 2 ; index <= numRows ; index++){
    12            ArrayList<Integer> help = new ArrayList<Integer>();
    13            help.add(1);
    14            for(int i = 0 ; i < pre.size() - 1 ; i++){
    15                help.add(pre.get(i) + pre.get(i + 1));
    16            }
    17            help.add(1);
    18            result.add(help);
    19            
    20            pre = help;    //只是改变了pre指向的内容,因此add进result的内容不会改变
    21        }
    22        return result;
    23     }
  • 相关阅读:
    RxJava+okhttp3
    RetrofitOkHttp网络请求
    布局111
    网络请求展示数据
    一级列表展示购物车
    终极MVP二级购物车
    将博客搬至CSDN
    nyoj-开灯问题
    nyoj-数乌龟
    nyoj 正三角形的外接圆面积
  • 原文地址:https://www.cnblogs.com/glamourousGirl/p/3751247.html
Copyright © 2020-2023  润新知