deno.land / x / masx200_leetcode_test@10.6.5 / prison-cells-after-n-days / index.ts

نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
export default function prisonAfterNDays(cells: number[], n: number): number[] { if (n === 0) return cells; const sets: Set<number> = new Set<number>(), results: number[][] = []; let key: number, times: number = n; //, i: number = 0; while (times-- > 0) { cells = transform(cells); key = state_unique_key(cells); if (sets.has(key)) { // console.log(results) return results[times % results.length]; } sets.add(key); results.push(cells); } return cells;}
function transform(cells: number[]) { return cells.map((_value, index) => { if (index === 0 || index === cells.length - 1) { return 0; }
return Number(cells[index + 1] === cells[index - 1]); });}function state_unique_key(cells: number[]): number { return Number("0b" + cells.join(""));}
masx200_leetcode_test

Version Info

Tagged at
a year ago