public class Solution {
public List<Integer> getRow(int rowIndex) {
List<Integer> li = new ArrayList<Integer>();
for(int i=0; i<rowIndex+1; i++)
li.add(element(rowIndex, i));
return li;
}
public int element(int m, int n){
System.out.println("m"+m+"n"+n);
if(n == 0)
return 1;
int k = n<m-n ? n : m-n;
double x=1,y=1;
for(int i = 1; i<= k; i++){
x *= (m-k+i);
y *= i;
}
System.out.println("x/y="+x/y);
return (int) Math.round(x/y);
}
}
------------------------
HINT, 每一个元素都是C(m,n);
Given an index k, return the kth row of the Pascal's triangle.
For example, given k = 3,
Return [1,3,3,1]
.
Note:
Could you optimize your algorithm to use only O(k) extra space?