3
private static final long mod = 1000000007;5
public int numOfWays(int[] nums) {6
ArrayList list = new ArrayList<>();11
return (int)dfs(list)-1;14
public long dfs(ArrayList list){15
if(list.size()<=2) return 1;16
ArrayList left=new ArrayList<>();17
ArrayList right=new ArrayList<>();24
return ((pascal[left.size()+right.size()][left.size()])*(dfs(left)%mod))%mod *(dfs(right)%mod);29
private void formPascal(int[] nums){30
pascal=new long[nums.length+1][];32
for(int i=0;i<=nums.length;i++){33
pascal[i]=new long[i+1];34
Arrays.fill(pascal[i],one);