Leetcode-pascals-triangle
来源:互联网 发布:wto数据库 编辑:程序博客网 时间:2024/06/06 01:16
题目描述
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]]
杨辉三角问题,我的想法简单直接(好像一直都是),取出上一个计算结果的最后一个元素,计算出现新加入的list,连同之前的结果一起加入到最终的结果中。
于是洋洋洒洒有了如下代码:
import java.util.*;public class Solution { public ArrayList<ArrayList<Integer>> generate(int numRows) { ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>> (); if(numRows == 0) return res; if(numRows == 1){ ArrayList<Integer> list = new ArrayList<Integer>(); list.add(1); res.add(list); return res; } ArrayList<ArrayList<Integer>> pre = generate(numRows-1); ArrayList<Integer> temp = pre.get(pre.size()-1); temp.add(1); for(int i=0; i<temp.size()-1; i++) { temp.add(temp.get(i)+temp.get(i+1)); } temp.add(1); for(int i=0; i<pre.size(); i++){ res.add(pre.get(i)); } res.add(temp); return res; }}一运行:
尴尬窒息。
于是我看了通过最好的一位同学的代码:
import java.util.ArrayList;public class Solution { public ArrayList<ArrayList<Integer>> generate(int numRows) { ArrayList<ArrayList<Integer>> triangle=new ArrayList<ArrayList<Integer>>(); if(numRows <= 0) return triangle; for(int i=0;i<numRows;i++){ ArrayList<Integer> currentLevel = new ArrayList<Integer>(); currentLevel.add(1);//每一层第一位 if(i>0){ //根据上一层宽度进行循环,由于本层两端的数字已经定下为1,所以本层需要计算的次数=上层宽度-1 for(int j=0;j<triangle.get(i-1).size()-1;j++){ currentLevel.add(triangle.get(i-1).get(j)+triangle.get(i-1).get(j+1)); } currentLevel.add(1);//每一层最后一位 } triangle.add(currentLevel); } return triangle; }}我发现了,我是没做一次,就生成了一个ArrayList,这是不对的,应该就只能有一个arraylist。
0 0
- Leetcode-pascals-triangle-ii
- Leetcode-pascals-triangle
- [leetcode]20 Pascals Triangle I
- 4.12 leetcode -12 pascals-triangle
- 【LeetCode】triangle & pascals-triangle i&ii
- https://leetcode.com/problems/pascals-triangle/
- 4.11 leetcode -11 pascals-triangle-ii
- 《leetcode》pascals-triangle(杨辉三角)
- pascals-triangle
- pascals-triangle
- pascals-triangle,pascals-triangle-ii
- http://oj.leetcode.com/problems/pascals-triangle-ii/
- pascals-triangle-i &ii
- pascals-triangle-ii
- 【pascals-triangle-ii】
- pascals-triangle-ii
- pascals-triangle Java code
- pascals-triangle Java code
- 2543. 【NOIP2011模拟9.1】直角三角形 (StandardIO)
- 1134 最长递增子序列
- map练习 统计参数个数
- CodeForce 675C 技巧题(其实我也不知道要归到什么里面去。。。)
- Crime
- Leetcode-pascals-triangle
- 数据结构之二叉树的建立与遍历
- 【1】【数学】CodeForces 588C Duff and Weight Lifting
- IplImage, CvMat, Mat 的关系
- 作用域注意事项
- 【项目】MFC下TCP/IP的套接字编程中CSocket,CSocketfile与CArchive类
- python 操作kafka
- leetcode-349. Intersection of Two Arrays
- Java-----Collection 实现的ArrayList