zoukankan      html  css  js  c++  java
  • 118. Pascal's Triangle

    翻译:给定行数,生成Pascal三角的第一行?(应该是所有行,不止第一行)

    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]
    ]
    

    大神代码(rheaxu

    public class Solution {

    public List<List<Integer>> generate(int numRows)
    {
    	List<List<Integer>> allrows = new ArrayList<List<Integer>>();//1.泛型,<>中的内容是指定该数组中存的类型,如这句,意为该数组中每个元素都是一个List数组,而且该list数组中每个元素都是Integer。2.多态,List是一个接口,ArrayList是其实现类,可看作子类(不对的话请读者指正),多态是指父类的引用指向子类对象,也就是List类的引用实际指向ArrayList,而在运行中,会调用子类重写的父类的方法。具体可查阅多态相关资料。
    	ArrayList<Integer> row = new ArrayList<Integer>();//1.泛型,该ArrayList数组中存放的元素类型为Integer
    	for(int i=0;i<numRows;i++)
    	{
    		row.add(0, 1);
    //add和set的区别 set()是更新,更新指定下标位置的值。
    //add()是添加,区别于一般的add(E e),这个就是有个位置的概念,特殊位置之后的数据,依次往后移动就是了。
    //在此意思为,将第0位设置为1,其它元素依次往后挪,这也就实现了随着层数增加,大小增加。
    for(int j=1;j<row.size()-1;j++)//只设置中间的内容,等于上一行的对应位置相加,第一位和最后一位不做处理,第一位也就是下标为0的位置已设为1,最后一位是前面推后的,也是1 row.set(j, row.get(j)+row.get(j+1)); allrows.add(new ArrayList<Integer>(row)); } return allrows; }

    }

    我的代码

    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.lang.Integer;

    class Solution {

    public List<List<Integer>> generate(int numRows) {

    Map lists=new HashMap();

    for(int i=2;i<numRows;i++){
    List<Integer> list = new ArrayList<Integer>();
    lists.put(("list"+i),list);
    }

    List<List<Integer>> List = new ArrayList<List<Integer>>();
    if (numRows==0)
    return List;
    List<Integer> list0 = new ArrayList<Integer>();
    List<Integer> list1 = new ArrayList<Integer>();
    List<Integer> temp = new ArrayList<Integer>();

    list0.add(1);
    List.add(list0);
    if (numRows==1)
    return List;

    list1.add(1);
    list1.add(1);
    List.add(list1);
    if (numRows==2)
    return List;

    for (int i = 2; i < numRows; i++) {
    temp=List.get(i-1);
    List<Integer> listi =(java.util.List<Integer>) lists.get(("list"+i));
    listi.add(1);
    for (int j=1;j<i;j++){
    listi.add(temp.get(j-1)+temp.get(j));
    }
    listi.add(1);
    List.add(listi);
    }

    return List;
    }
    }

  • 相关阅读:
    JDBC 查询的三大参数 setFetchSize prepareStatement(String sql, int resultSetType, int resultSetConcur)
    有空必看
    SpringMVC 利用AbstractRoutingDataSource实现动态数据源切换
    FusionCharts JavaScript API Column 3D Chart
    FusionCharts JavaScript API
    FusionCharts JavaScript API
    Extjs 继承Ext.Component自定义组件
    eclipse 彻底修改复制后的项目名称
    spring 转换器和格式化
    Eclipse快速生成一个JavaBean类的方法
  • 原文地址:https://www.cnblogs.com/mafang/p/8383931.html
Copyright © 2011-2022 走看看