957 N 天後的牢房

2022-09-21 15:06:15 字數 1099 閱讀 6367

8 間牢房排成一排,每間牢房不是有人住就是空著。

每天,無論牢房是被占用或空置,都會根據以下規則進行更改:

如果一間牢房的兩個相鄰的房間都被占用或都是空的,那麼該牢房就會被占用。

否則,它就會被空置。

(請注意,由於監獄中的牢房排成一行,所以行中的第乙個和最後乙個房間無法有兩個相鄰的房間。)

我們用以下方式描述監獄的當前狀態:如果第 i 間牢房被占用,則 cell[i]1,否則 cell[i]0。

根據監獄的初始狀態,在 n 天後返回監獄的狀況(和上述 n 種變化)。

import j**a.util.hashmap;

import j**a.util.map;

class solution

return ans;

}private int toarray(int x)

return ans;

}private int next(int cells)

}return ans;

}private int next(int x)

return ans;

}public int prisonafterndays(int cells, int n)

hash[index] = x;

map.put(x, index++);

}if (index == n + 1)

/*** 迴圈節的第乙個元素的下標

*/int startindex = map.get(x);

/*** 迴圈節的長度

*/// 1 2 3 4 5 6 7

int circlelength = index - startindex;

/*** 去除前面不是迴圈節的部分

*/n -= (startindex - 1);

/*** 在迴圈節的第乙個數

*/int rank = n % circlelength == 0 ? circlelength : n % circlelength;

x = hash[startindex + rank - 1];

return toarray(x);

}}

Leetcode 957 N天後的牢房

8 間牢房排成一排,每間牢房不是有人住就是空著。每天,無論牢房是被占用或空置,都會根據以下規則進行更改 如果一間牢房的兩個相鄰的房間都被占用或都是空的,那麼該牢房就會被占用。否則,它就會被空置。請注意,由於監獄中的牢房排成一行,所以行中的第乙個和最後乙個房間無法有兩個相鄰的房間。我們用以下方式描述監...

LeetCode 957 N天後的牢房

題目描述 8 間牢房排成一排,每間牢房不是有人住就是空著。每天,無論牢房是被占用或空置,都會根據以下規則進行更改 如果一間牢房的兩個相鄰的房間都被占用或都是空的,那麼該牢房就會被占用。否則,它就會被空置。請注意,由於監獄中的牢房排成一行,所以行中的第乙個和最後乙個房間無法有兩個相鄰的房間。我們用以下...

Leetcode 957 N天後的牢房

leetcode 957.n天後的牢房 8間牢房排成一排,每間牢房不是有人住就是空著。每天,無論牢房是被占用或空置,都會根據以下規則進行更改 如果一間牢房的兩個相鄰的房間都被占用或都是空的,那麼該牢房就會被占用。否則,它就會被空置。請注意,由於監獄中的牢房排成一行,所以行中的第乙個和最後乙個房間無法...