1function pascalTriangle(n) {
2 const C = Array.from({ length: n + 1 }, () => new Array(n + 1).fill(0));
3 for (let i = 0; i <= n; i++) {
4 C[i][0] = 1;
5 for (let j = 1; j <= i; j++)
6 C[i][j] = C[i - 1][j - 1] + C[i - 1][j];
7 }
8 return C;
9}
10function permute(nums) {
11 const res = [];
12 const dfs = (path, used) => {
13 if (path.length === nums.length) { res.push([...path]); return; }
14 for (let i = 0; i < nums.length; i++) {
15 if (used[i]) continue;
16 used[i] = true;
17 path.push(nums[i]);
18 dfs(path, used);
19 path.pop();
20 used[i] = false;
21 }
22 };
23 dfs([], new Array(nums.length).fill(false));
24 return res;
25}