26、楊輝三角
阿新 • • 發佈:2018-11-16
題目
這道題很簡單,只需要兩個for迴圈,並且判斷內層中的變數是否等於1或者外層的值,如果等於的話直接賦值1,否則就取出上一層的值並且取出相鄰的值
程式碼:
public static List<List<Integer>> generate(int numRows) { List<List<Integer>> target = new ArrayList<>(); for(int i = 1; i <= numRows; i++){ List<Integer> mid = new ArrayList<>(); for(int j = 1; j <= i; j++){ if(j == 1 || j == i){ mid.add(1); }else { mid.add(target.get(i-2).get(j-2)+target.get(i-2).get(j-1)); } } target.add(mid); } return target; }
排行96%
排行比較高的,思路差不多其實
class Solution { public List<List<Integer>> generate(int numRows) { List <List<Integer>> tri=new ArrayList<List<Integer>>(); if(numRows==0){ return tri; } tri.add(new ArrayList<>()); tri.get(0).add(1); for(int i=1;i<numRows;i++){ List<Integer> row=new ArrayList<>(); List<Integer> preRow=tri.get(i-1); row.add(1); for(int j=1;j<i;j++){ row.add(preRow.get(j-1)+preRow.get(j)); } row.add(1); tri.add(row); } return tri; } }