本文共 876 字,大约阅读时间需要 2 分钟。
题目:(中等)
标签:哈希表
解法 | 时间复杂度 | 空间复杂度 | 执行用时 |
---|---|---|---|
Ans 1 (Python) | O ( 2 8 ) O(2^8) O(28) | O ( 2 8 ) O(2^8) O(28) | 52ms (59.18%) |
Ans 2 (Python) | |||
Ans 3 (Python) |
解法一:
class Solution: def prisonAfterNDays(self, cells: List[int], N: int) -> List[int]: count = { "".join(str(c) for c in cells): 0} lst = [cells] i = 0 while True: i += 1 # 计算调换 new = [0] * 8 for j in range(1, 7): if cells[j - 1] == cells[j + 1]: new[j] = 1 else: new[j] = 0 cells = new lst.append(cells) s = "".join(str(c) for c in cells) if s in count: start = count[s] circle = i - count[s] # 循环周期 break else: count[s] = i return lst[(N - start) % circle + start]
转载地址:http://wczcf.baihongyu.com/