1359-count-all-valid-pickup-and-delivery-options
DevGod needs to write a blog entry for this problem!
/**
* @param {number} n
* @return {number}
*/
var memo = [1,6,90,2520,113400];
var countOrders = function(n) {
if(memo[n-1] === undefined){
if(memo[n-2] === undefined){
memo[n-2] = countOrders(n-1);
}
memo[n-1] = n*(memo[n-2]+
(n-1)*(2*memo[n-2]))%(1e9+7);
}
return memo[n-1];
};