LeetCode#118. Pascal's Triangle LeetCode#119. Pascal's Triangle II

来源:互联网 发布:java demo是什么 编辑:程序博客网 时间:2024/06/04 00:41
  • 题目:给定一个整数n,输出n行杨辉三角形的结果
  • 难度:Easy
  • 思路:知道杨辉三角的形成规律,就可以通过两层for循环得到
  • 代码:
public class Solution {    public List<List<Integer>> generate(int numRows) {        List<List<Integer>> result = new ArrayList<>();        if(numRows <= 0){            return result;        }        List<Integer> li = new ArrayList<>();        li.add(1);        result.add(li);        for(int i = 1; i < numRows; i++){            List<Integer> tmp = new ArrayList<>();            tmp.add(1);            List<Integer> list = result.get(i-1);            for(int j = 1; j < i; j++){                tmp.add(list.get(j-1)+list.get(j));            }            tmp.add(1);            result.add(new ArrayList<>(tmp));        }        return result;    }}

利用ArrayList的一些常用方法,代码简洁很多

java.util.ArrayList.add(int index, E elemen) 方法将指定的元素E在此列表中的指定位置。它改变了目前元素在该位置(如果有的话)和所有后续元素向右移动(将添加一个到其索引)。
public class Solution {    public List<List<Integer>> generate(int numRows)    {        List<List<Integer>> allrows = new ArrayList<List<Integer>>();        ArrayList<Integer> row = new ArrayList<Integer>();        for(int i=0;i<numRows;i++)        {            row.add(0, 1);            System.out.println(row.toString());            for(int j=1;j<row.size()-1;j++)                row.set(j, row.get(j)+row.get(j+1));            allrows.add(new ArrayList<Integer>(row));        }        return allrows;    }}

  • 题目:输入一个int值rowIndex,返回杨辉三角形的第rowIndex行元素(rowIndex从0开始计数)
  • 难度:Easy
  • 思路:由于有了上一题的方法,直接循环rowIndex+1次,每次更新list的元素
  • 代码:
public class Solution {    public List<Integer> getRow(int rowIndex) {        List<Integer> result = new ArrayList<>();        if(rowIndex < 0){            return result;        }        for(int i = 0; i < rowIndex+1; i++){            result.add(0,1);            for(int j = 1; j < result.size()-1; j++){                result.set(j, result.get(j) + result.get(j+1));            }        }        return result;    }}
原创粉丝点击