美文网首页
[LeetCode]36、有效的数独

[LeetCode]36、有效的数独

作者: 河海中最菜 | 来源:发表于2019-07-28 10:25 被阅读0次

题目描述

判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。

数字 1-9 在每一行只能出现一次。
数字 1-9 在每一列只能出现一次。
数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。

思路解析

设置27个字典,三个数组分别保存行、列、块的数字西,每个数组放9个字典。
遍历,放在对应的map中。
box_index = (i // 3) * 3 + j //3

class Solution:
    def isValidSudoku(self, board):
        """
        :type board: List[List[str]]
        :rtype: bool
        """
        # init data
        rows = [{} for i in range(9)]
        columns = [{} for i in range(9)]
        boxes = [{} for i in range(9)]

        # validate a board
        for i in range(9):
            for j in range(9):
                num = board[i][j]
                if num != '.':
                    num = int(num)
                    box_index = (i // 3) * 3 + j // 3

                    # keep the current cell value
                    rows[i][num] = rows[i].get(num, 0) + 1
                    columns[j][num] = columns[j].get(num, 0) + 1
                    boxes[box_index][num] = boxes[box_index].get(num, 0) + 1

                    # check if this value has been already seen before
                    if rows[i][num] > 1 or columns[j][num] > 1 or boxes[box_index][num] > 1:
                        return False
        return True
AC36

相关文章

  • Python小白 Leetcode刷题历程 No.36-N

    Python小白 Leetcode刷题历程 No.36-No.40 有效的数独、解数独、外观数列、组合...

  • Leetcode-36 有效的数独

    36. 有效的数独[https://leetcode-cn.com/problems/valid-sudoku/]...

  • DFS+回溯

    LeetCode 36 判断给出的数独是否有效https://www.cnblogs.com/ganganlove...

  • [leetcode] 36 有效数独

    leetcode 36 Determine if a 9x9 Sudoku board is valid. Onl...

  • 36. 有效的数独

    36. 有效的数独(难度:中等) 题目链接:https://leetcode-cn.com/problems/va...

  • 每天进步一点点【2019.8.24】

    一、有效的数独【leetcode 36】 题目描述:判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经...

  • LeetCode 36——有效的数独

    1. 题目 2. 解答 将数独中数字的 ASCII 码值转化到 0-8 之间作为散列值,建立一个散列表,然后分别逐...

  • [LeetCode]36、有效的数独

    题目描述 判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。 数字 1-9 在...

  • LeetCode: 36 有效的数独

    【记录性文章-数组】 代码思路:本质上还是判断数组内重复的题,所以还是使用一边判断是否在哈希表中,一边遍历向哈希表...

  • LeetCode - #36 有效的数独

    前言 我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。微博:@故胤...

网友评论

      本文标题:[LeetCode]36、有效的数独

      本文链接:https://www.haomeiwen.com/subject/dysurctx.html