2
public int[] prisonAfterNDays(int[] cells, int N) {3
if (N == 0) return cells;4
int[][] mem = new int[14][8]; // Repeat pattern after day 14, so Day 1 and Day 15 is equal7
for (int i = 1; i < 7; i++) { // calculating Day 1 and insert at 0th position in mem8
if (cells[i - 1] == cells[i + 1]) mem[0][i] = 1;14
j++) { // calculating Day 2 to 14 and inserting at position 1 to 13 in mem.15
for (int i = 1; i < 7; i++) {16
if (mem[j - 1][i - 1] == mem[j - 1][i + 1]) mem[j][i] = 1;20
return mem[(N - 1) % 14]; // return the day modulo 14