Number of Ways to Rearrange Sticks With K Sticks Visible LeetCode solution in Java
1class Solution {2public int rearrangeSticks(int n, int k) {3final int MOD = 1_000_000_007;4long[][] M = new long[k + 1][n + 1];5M[0][0] = 1;6for (int i = 1; i <= k; i++) {7for (int j = 1; j <= n; j++) {8M[i][j] = ((j - 1) * M[i][j - 1] % MOD + M[i - 1][j - 1]) % MOD;9}10}11return (int) M[k][n];12}13}