• Pascal's Triangle


    package cn.edu.xidian.sselab.array;

    import java.util.ArrayList;
    import java.util.List;

    /**
     *
     * @author zhiyong wang
     * title:Pascal's Triangle
     * content:
     * Given numRows, generate the first numRows of Pascal's triangle.
     * For example, given numRows = 5,
     * Return
     * [
     *         [1],
     *     [1,1],
     *    [1,2,1],
     *   [1,3,3,1],
     *  [1,4,6,4,1]
     * ]
     */
    public class PascalTriangle {

        //这个地方一开始自己没有考虑到每次都要新建一个数组对象来存放数据,
        //调用rows.clear();添加到最终结果里面的数据又被清空了,因为他们指向了相同的地址空间
        //还有一个自己新学习到的地方,rows.add(0,1);每次在数组的第一个位置新添加一个1,而不是替换
        //rows.set(0,1);每次将数组第一个位置的数值替换成1
        //最重要的学到的新内容:new ArrayList<Integer>(Object obj); 可以直接加参数,表示的意义是将obj的内容复制给一个新的对象
        //具体实现过程是,每次循环都在第一个位置插入1,然后对数组后面的数字相邻的两两求和,替换掉对应位置上的数值,从而得到下一个结果
        public List<List<Integer>> generate(int numRows){
            List<List<Integer>> allRows = new ArrayList<List<Integer>>();
            List<Integer> rows = new ArrayList<Integer>();
            for(int i=0;i<numRows;i++){
                rows.add(0, 1);
                for(int j=1;j<rows.size()-1;j++){
                    rows.set(j, rows.get(j)+rows.get(j+1));
                }
                allRows.add(new ArrayList<Integer>(rows));
            }
            return allRows;
        }
        
    }

  • 相关阅读:
    信息体系结构原则之二——有用性目标
    信息体系结构原则之一——复杂性和简单性
    最近的一些近况与规划(13.05月)
    asp OO4O '800a01b8'
    SPMobileMessageSmsBuilder 该服务提供商不支持短信 The ServiceProvider does not support SMS
    SQL日志截断
    用户配置文件同步服务备注
    Sharepoint JS CSS 注册
    Word 正文从1开始编页码
    Sharepoint 短信服务 OMS 证书导入
  • 原文地址:https://www.cnblogs.com/wzyxidian/p/5062332.html
Copyright © 2020-2023  润新知