I have to store n! from 1 to 8 in an array.

If i use another method to calculate n!, it will exceed the time limit.

Please help to make this faster.

Thanks

```
public class Solution {
public String getPermutation(int n, int k) {
int[] numPer = {0,1,2,6,24,120,720,5040,40320};
ArrayList<Integer> l = new ArrayList<>();
for(int i = 1; i<n+1; i++) l.add(i);
StringBuffer s = new StringBuffer();
for(int i=n; i>1; i--){
int first = (int)Math.floor((double)(k-1) / (double)numPer[i-1]);
k = k - first * numPer[i-1];
s.append( l.get(first));
l.remove(first);
}
s.append(l.get(0));
return s.toString();
}
}
```