Pascal's Triangle 打印Pascal三角 @LeetCode
2013-10-19 07:59
309 查看
题目:
打印Pascal三角
思路:
把每一行拆成前半和后半,分别处理
这题的followup是求第k行的序列:
http://blog.csdn.net/fightforyourdream/article/details/12867865
打印Pascal三角
思路:
把每一行拆成前半和后半,分别处理
这题的followup是求第k行的序列:
http://blog.csdn.net/fightforyourdream/article/details/12867865
package Level2; import java.util.ArrayList; /** * Pascal's Triangle * * 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 S118 { public static void main(String[] args) { System.out.println(generate(5)); } public static ArrayList<ArrayList<Integer>> generate(int numRows) { ArrayList<ArrayList<Integer>> ret = new ArrayList<ArrayList<Integer>>(); int i, j; // i用来走列 for(i=0; i<numRows; i++){ ArrayList<Integer> list = new ArrayList<Integer>(); // j用来走行,先走前半行 for(j=0; j<=i/2; j++){ if(j == 0){ // 对首位特殊处理 list.add(1); }else if(i>0){ // 累加前面结果 list.add(ret.get(i-1).get(j-1)+ret.get(i-1).get(j)); } } // j再走后半行 for(; j<=i; j++){ if(j == i){ // 对末位特殊处理 list.add(1); }else if(i>0){ // 累加前面结果 list.add(ret.get(i-1).get(j-1)+ret.get(i-1).get(j)); } } ret.add(list); } return ret; } }
public class Solution { public ArrayList<ArrayList<Integer>> generate(int numRows) { ArrayList<ArrayList<Integer>> ret = new ArrayList<ArrayList<Integer>>(); if(numRows == 0){ return ret; } ArrayList<Integer> al = new ArrayList<Integer>(); al.add(1); ret.add(al); for(int i=1; i<numRows; i++){ al = new ArrayList<Integer>(); for(int j=0; j<=i; j++){ if(j==0 || j==i){ al.add(1); }else{ al.add(ret.get(i-1).get(j-1)+ret.get(i-1).get(j)); } } ret.add(al); } return ret; } }
相关文章推荐
- Pascal's Triangle II 求Pascal三角的某一行 @LeetCode
- 打印杨辉三角系数(Pascal's Triangle / 二项式展开系数)队列实现
- 打印出Pascal三角:
- 打印杨辉三角形(Pascal's triangle)——利用链式队列
- Pascal's Triangle 打印数字三角形
- LeetCode Pascal's Triangle 打印杨辉三角
- 打印倒三角
- LeetCode---Pascal Triangle、Pascal Triangle II解题分析
- Pascal's Triangle
- Pascal's Triangle
- Easy-题目31:118. Pascal's Triangle
- LeetCode119. Pascal's Triangle II-python(easy)
- 【LeetCode with Python】 Pascal's Triangle
- 118. Pascal's Triangle
- Pascal's Triangle II
- leetcode: (119) Pascal's Triangle II
- Android三角标签View:TriangleLabelView
- 杨辉三角(pascal's triangle)
- 【LeetCode】-Pascal's Triangle II
- 119. Pascal's Triangle II