import random
classSolution:def__init__(self, m:int, n:int):
self.m = m
self.n = n
self.size = m*n
self.deletedToExist =dict()defflip(self)-> List[int]:
rand = random.randint(0, self.size-1)
res = rand
# 这个随机数 可能已经被删掉了if res in self.deletedToExist:
res = self.deletedToExist.get(res)# 把rand换到数据尾部# 数据尾部元素也可能已经被删除
last = self.size-1if last in self.deletedToExist:
last = self.deletedToExist.get(last)
self.deletedToExist[rand]= last
self.size -=1return[res//self.n, res%self.n]defreset(self)->None:
self.size = self.m * self.n
self.deletedToExist.clear()# Your Solution object will be instantiated and called as such:# obj = Solution(m, n)# param_1 = obj.flip()# obj.reset()