Prison Cells After N Days - Problem
There are 8 prison cells in a row and each cell is either occupied or vacant.
Each day, whether the cell is occupied or vacant changes according to the following rules:
- If a cell has two adjacent neighbors that are both occupied or both vacant, then the cell becomes occupied.
- Otherwise, it becomes vacant.
Note: Because the prison is a row, the first and last cells in the row can't have two adjacent neighbors.
You are given an integer array cells where cells[i] == 1 if the ith cell is occupied and cells[i] == 0 if the ith cell is vacant, and you are given an integer n.
Return the state of the prison after n days (i.e., n such changes described above).
Input & Output
Example 1 — Basic Transformation
$
Input:
cells = [0,1,0,1,1,0,0,1], n = 7
›
Output:
[0,0,0,0,0,0,0,0]
💡 Note:
After 7 days of applying the transformation rules, all cells become vacant. The transformation quickly converges to all zeros for this initial state.
Example 2 — Single Day
$
Input:
cells = [1,0,0,1,0,0,1,0], n = 1
›
Output:
[0,0,0,1,0,0,1,0]
💡 Note:
After one day: cell[3] becomes 1 (neighbors 0,0 are same), cell[6] becomes 1 (neighbors 0,0 are same), all other middle cells become 0 due to different neighbors, and edge cells become 0.
Example 3 — No Change Needed
$
Input:
cells = [1,1,1,1,1,1,1,1], n = 0
›
Output:
[1,1,1,1,1,1,1,1]
💡 Note:
When n = 0, no days pass so the cells remain unchanged from the initial state.
Constraints
- cells.length == 8
- cells[i] is either 0 or 1
- 1 ≤ n ≤ 109
Visualization
Tap to expand
💡
Explanation
AI Ready
💡 Suggestion
Tab
to accept
Esc
to dismiss
// Output will appear here after running code