给出一个值numRows,生成杨辉三角的前numRows行
import java.util.*; public class Solution { public ArrayList<ArrayList<Integer>> generate(int numRows) { ArrayList<ArrayList<Integer>> list = new ArrayList<>(numRows); for(int i=0; i<numRows; i++){ ArrayList<Integer> l = new ArrayList<>(i+1); l.add(1); for(int j=1; j<=i; j++){ if(i==j) { l.add(1); break; } l.add(list.get(i-1).get(j-1)+list.get(i-1).get(j)); } list.add(l); } return list; } }
import java.util.ArrayList; public class Solution { public ArrayList<ArrayList<Integer>> generate(int numRows) { ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>(); for(int n = 1; n <= numRows; n++){ ArrayList<Integer> list = new ArrayList<>(); long number = 1; for(int i = 1; i <= n; i++){ list.add((int)number); number = number * (n - i) / i; } res.add(list); } return res; } }
ArrayList<ArrayList<Integer>> res=new ArrayList<>(); for (int i=0;i<numRows;i++){ ArrayList<Integer> temp=new ArrayList<>(); for (int j=0;j<=i;j++){ if (j==0||j==i) temp.add(1); else temp.add(res.get(i-1).get(j-1)+res.get(i-1).get(j)); } res.add(temp); } return res;
public ArrayList<ArrayList<Integer>> generate(int numRows) { ArrayList<ArrayList<Integer>> results = new ArrayList(); if (numRows < 1) { return results; } ArrayList<Integer> list1 = new ArrayList(); list1.add(1); results.add(list1); for(int i = 2; i <= numRows; i++) { ArrayList<Integer> lastRow = results.get(i - 2); ArrayList<Integer> listI = new ArrayList(); for (int j = 1; j <= i; j++) { if (j == 1 || j == i) { listI.add(1); } else { listI.add(lastRow.get(j - 2) + lastRow.get(j - 1)); } } results.add(listI); } return results; }
Leetcode#118. Pascal's Triangle(杨辉三角)
package Array;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* 118\. Pascal's Triangle(杨辉三角)
* 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
*/
public class Solution118 {
public static void main(String[] args) {
Solution118 solution118 = new Solution118();
int numRows = 1;
List> res = solution118.generate(numRows);
System.out.println(res);
}
/**
* 对任意的n>0有
* f(1, n)=1,(n>0)
* f(1, 2)=1,(n=2)
* f(i,j) = f(i-1, j-1)+f(i, j-1),i>2,j>2
*
* @param numRows
* [@return](/profile/547241) */
public List> generate(int numRows) {
if (numRows == 0) {
return Collections.emptyList();
}
List> res = new ArrayList();
for (int i = 0; i < numRows; i++) {
List sub = new ArrayList();
for (int j = 0; j <= i; j++) {
if (j == 0 || j == i) {
sub.add(1);
} else {
List upSub = res.get(i - 1);
sub.add(upSub.get(j - 1) + upSub.get(j));
}
}
res.add(sub);
}
return res;
}
}
public ArrayList<ArrayList<Integer>> generate(int numRows) { ArrayList<ArrayList<Integer>> row = new ArrayList<ArrayList<Integer>>(); ArrayList<Integer> temp = new ArrayList<Integer>(); if(numRows<=0) return row; temp.add(1); row.add(temp); for (int i = 1; i < numRows; i++) { temp = new ArrayList<Integer>(); temp.add(1); for (int j = 1; j < i ; j++) { temp.add(row.get(i-1).get(j-1)+row.get(i-1).get(j)); } temp.add(1); row.add(temp); } return row; }
import java.util.*; public class Solution { public ArrayList<ArrayList<Integer>> generate(int numRows) { ArrayList<ArrayList<Integer>> list = new ArrayList<ArrayList<Integer>>(); if(numRows==0) return list; for(int i=0;i<numRows;i++){ list.add(getRow(i)); } return list; } public ArrayList<Integer> getRow(int rowIndex) { ArrayList<Integer> res = new ArrayList<Integer>(); if(rowIndex==0) { res.add(1); return res;} int[][] a = new int[rowIndex+1][rowIndex+1]; for (int i = 0; i < rowIndex+1; i++) { Arrays.fill(a[i], 1); } //a[0][0]=1;a[1][0]=1;a[1][1]=1; for(int i=2;i<rowIndex+1;i++){ for(int j=1;j<i;j++){ a[i][j]=a[i-1][j]+a[i-1][j-1]; } } res.add(1); for(int i =1;i<rowIndex;i++){ res.add(a[rowIndex][i]); } res.add(1); return res; } }
import java.util.*; public class Solution { public ArrayList<ArrayList<Integer>> generate(int numRows) { ArrayList<ArrayList<Integer>> aList=new ArrayList<ArrayList<Integer>>(); for(int i=0;i<numRows;i++){ ArrayList<Integer> list=new ArrayList<Integer>(); list.add(1); if(i>0){ for(int j=0;j<aList.get(i-1).size()-1;j++){ list.add(aList.get(i-1).get(j)+aList.get(i-1).get(j+1)); } list.add(1); } aList.add(list); } return aList; } }
import java.util.*; public class Solution { public ArrayList<ArrayList<Integer>> generate(int numRows) { ArrayList<ArrayList<Integer>> list = new ArrayList<ArrayList<Integer>>(); if (numRows <= 0) return list; ArrayList<Integer> first = new ArrayList<Integer>(); first.add(1); list.add(first); if (numRows == 1) return list; for (int k = 2; k <= numRows; ++k) { ArrayList<Integer> last = list.get(list.size() - 1); ArrayList<Integer> temp = new ArrayList<Integer>(); temp.add(1); for (int i = 1; i < k - 1; ++i) { temp.add(last.get(i - 1) + last.get(i)); } temp.add(1); list.add(temp); } return list; } }
import java.util.*; public class Solution { public ArrayList<ArrayList<Integer>> generate(int numRows) { ArrayList<Integer> list = new ArrayList<Integer>(); ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>(); if(numRows < 1) return res; list.add(1); res.add(new ArrayList(list)); for(int i=1; i<numRows; i++) { for(int j=i-1; j>0; j--) { list.set(j,list.get(j)+list.get(j-1)); } list.add(1); res.add(new ArrayList(list)); } return res; } }
import java.util.*; public class Solution { public ArrayList<ArrayList<Integer>> generate(int numRows) { ArrayList<ArrayList<Integer>> list = new ArrayList<>(); for (int i = 0; i < numRows; i ++) { ArrayList<Integer> temp = new ArrayList<>(); for (int j = 0; j <= i; j ++) { if(j == 0 || j == i) temp.add(1); else temp.add(list.get(i - 1).get(j - 1) + list.get(i - 1).get(j)); } list.add(temp); } return list; } }
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); 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; }