Leetcode 519. Random Flip Matrix

Posted SnailTyan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode 519. Random Flip Matrix相关的知识,希望对你有一定的参考价值。

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

1. Description

2. Solution

**解析:**Version 1,使用单一数字作为矩阵的坐标索引,利用字典来保存访问过的矩阵索引,如果随机得到的索引在字典中存在,则继续进行随机索引,直至找到一个未访问过的索引,如果所有索引都访问过,则返回空坐标。

  • Version 1
class Solution:

    def __init__(self, m: int, n: int):
        self.m = m
        self.n = n
        self.coordinates = m * n
        self.visited = {}


    def flip(self) -> List[int]:
        if len(self.visited) == self.coordinates:
            return []
        index = random.randrange(self.coordinates)
        while index in self.visited:
            index = random.randrange(self.coordinates)
        self.visited[index] = 1
        return [index // self.n, index % self.n]


    def reset(self) -> None:
        self.visited = {}


# Your Solution object will be instantiated and called as such:
# obj = Solution(m, n)
# param_1 = obj.flip()
# obj.reset()

Reference

  1. https://leetcode.com/problems/random-flip-matrix/

以上是关于Leetcode 519. Random Flip Matrix的主要内容,如果未能解决你的问题,请参考以下文章

解题报告Leecode 519. 随机翻转矩阵——Leecode每日一题系列

解题报告Leecode 519. 随机翻转矩阵——Leecode每日一题系列

[LeetCode] Random Flip Matrix 随机翻转矩阵

随机矩阵位置构造题——519. 随机翻转矩阵

LeetCode Flip Game II

[LeetCode] Flip Game 翻转游戏