Pascal's Triangle 打印Pascal三角 @LeetCode
来源:互联网 发布:windows me 系统安装 编辑:程序博客网 时间:2024/05/18 03:12
题目:
打印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 打印Pascal三角 @LeetCode
- LeetCode Pascal's Triangle 打印杨辉三角
- 【LeetCode】Pascal's Triangle (杨辉三角)
- 【LeetCode】Pascal's Triangle (杨辉三角)
- (LeetCode)Pascal's Triangle --- 杨辉三角
- 【Leetcode】Pascal's Triangle (Pascal)
- LeetCode Pascal's Triangle
- [Leetcode] Pascal's Triangle
- LeetCode: Pascal's Triangle
- [LeetCode] Pascal's Triangle
- 【leetcode】Pascal's Triangle
- LeetCode - Pascal's Triangle
- [LeetCode]Pascal's Triangle
- Leetcode: Pascal's Triangle
- Pascal's Triangle --Leetcode
- LeetCode-Pascal's Triangle
- [leetcode] Pascal's Triangle
- LeetCode - Pascal's Triangle
- 16进制串转数值数组Hexstr2Array
- C++实现二叉树的递归和非递归遍历方法
- U-Boot在内核为Cortex-A8的飞思卡尔处理器i.MX53上的移植
- 专业学习期望与规划
- Future 实例
- Pascal's Triangle 打印Pascal三角 @LeetCode
- Section 2: Console Tab : Using Commandline API in Firebug
- Ubuntu命令大全
- 调试小程序
- 【玩转cocos2d-x之十二】plist解析工具:Anti_TexturePacker
- Pascal's Triangle II 求Pascal三角的某一行 @LeetCode
- iscsi
- JSP 四个作用域及九个内置对象
- Section 3: Console Tab : Logging, Profiling and CommandLine (Part I)