diff --git a/Easy/Pascal_Triangle.java b/Easy/Pascal_Triangle.java new file mode 100644 index 00000000..b0cbcb00 --- /dev/null +++ b/Easy/Pascal_Triangle.java @@ -0,0 +1,57 @@ +/** + * Pascal's Triangle + * 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] + ] + + Analysis : + using dp + */ + +import java.util.*; + +public class Pascal_Triangle { + public static List> generate(int numRows) { + + List> res = new ArrayList>(); + ArrayList member = new ArrayList(); + if(numRows <= 0){ + return res; + } + member.add(1); + res.add( member); + return generateArray(res, numRows-1); + } + + public static List> generateArray(List> res, int n){ + if(n == 0){ + return res; + } + else{ + List resLast= new ArrayList(); + ArrayList newMember = new ArrayList(); + resLast = res.get(res.size()-1); + newMember.add(1); + for(int i = 0; i < resLast.size()-1; i++){ + int temp = resLast.get(i) + resLast.get(i+1); + newMember.add(temp); + } + newMember.add(1); + res.add(newMember); + return generateArray(res, n-1); + } + } + public static void main(String[] args) { + // TODO Auto-generated method stub + System.out.print(generate(5)); + } + +}