給定行數,生成對應的楊輝三角java
後面經過編程實現,發現本身第一個條件是徹底沒有用的,能夠不須要用到對稱性,直接由上一行計算下一行(即第三條)。
並且忘記說最後一列了。編程
因此新的思考點是:函數
因爲粗心把當前行數i
用總行數numRows
代替,因此出現了下標出界的狀況Line 18: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
。優化
還有沒想清楚關於對稱點和i、j的關係,因此老是出界。最後考慮取消這個點,從整體狀況考慮。code
把lineInts
聲明在函數域中,結果放入總的嵌套List中出了問題。而後在for的局部域中聲明這個變量,問題就解決了。get
public List<List<Integer>> generate(int numRows) { List<List<Integer>> results=new ArrayList<List<Integer>>(numRows); for(int i=0;i<numRows;i++){//i表明當前行數-1 ArrayList<Integer> lineInts=new ArrayList<Integer>();//這一行的數字 lineInts.add(1);//每行第一個是1 int j=1; for(;j<i;j++){ int sum=results.get(i-1).get(j-1)+results.get(i-1).get(j); lineInts.add(sum); } if(i>0) lineInts.add(1);//最後加一個1 results.add(lineInts); } return results; }
成績是32%,應該還有優化的地方,回頭再考慮一下吧。io