-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpascal_triangle.java
59 lines (48 loc) · 1.44 KB
/
pascal_triangle.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package dummy;
import java.util.ArrayList;
public class pascal_triangle {
public pascal_triangle() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(getRow(3));
}
public static ArrayList<ArrayList<Integer>> generate(int a) {
ArrayList<ArrayList<Integer>> ans= new ArrayList<ArrayList<Integer>>();
for(int i=1; i<=a; i++) {
ans.add(new ArrayList<Integer>());
for(int j=1; j<=i; j++) {
if(j==1 || j==i) {
ans.get(i-1).add(1);
} else {
ans.get(i-1).add(ans.get(i-2).get(j-2) + ans.get(i-2).get(j-1));
}
}
}
return ans;
}
public static ArrayList<Integer> getRow(int a) {
a++;
ArrayList<Integer> ans= new ArrayList<Integer>();
int prev=1;
for(int i=1; i<=a; i++) {
for(int j=1; j<=i; j++) {
if(j==1 || j==i) {
if(j<=ans.size())
ans.set(j-1, 1);
else
ans.add(j-1, 1);
} else {
int temp=ans.get(j-1);
if(j<=ans.size())
ans.set(j-1, prev + temp);
else
ans.add(j-1, prev + temp);
prev=temp;
}
}
}
return ans;
}
}