標籤:帕斯卡 演算法 面試 java
【118-Pascal’s Triangle(帕斯卡三角形(楊輝三角))】
【LeetCode-面試演算法經典-Java實現】【所有題目目錄索引】
原題
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]]
題目大意
給定一個正整數n,求n層帕斯卡三角形。
解題思路
對任意的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
代碼實現
演算法實作類別
public class Solution { public List<List<Integer>> generate(int numRows) { if (numRows < 0) { return null; } List<List<Integer>> list = new ArrayList<>(); if (numRows >= 1) { List<Integer> data = new ArrayList<>(); data.add(1); list.add(data); } if (numRows >= 2) { List<Integer> data = new ArrayList<>(); data.add(1); data.add(1); list.add(data); } if (numRows >=3) { for (int i = 3; i <=numRows; i++) { List<Integer> data = new ArrayList<>(); List<Integer> prev = list.get(i - 2); data.add(1); for (int j = 2; j <= i -1; j++) { data.add(prev.get(j - 2) + prev.get(j - 1)); } data.add(1); list.add(data); } } return list; }}
評測結果
點擊圖片,滑鼠不釋放,拖動一段位置,釋放後在新的視窗中查看完整圖片。
特別說明
歡迎轉載,轉載請註明出處【http://blog.csdn.net/derrantcm/article/details/47588929】
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
【LeetCode-面試演算法經典-Java實現】【118-Pascal's Triangle(帕斯卡三角形)】