博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Leetcode/python/Hard/37】Sudoku Solver
阅读量:2172 次
发布时间:2019-05-01

本文共 1145 字,大约阅读时间需要 3 分钟。

题目描述

图太长了,就不贴了

基本思路

DFS必须得掌握啊

实现代码

class Solution:    def solveSudoku(self, board):        """        :type board: List[List[str]]        :rtype: void Do not return anything, modify board in-place instead.        """        def isValid(x,y):            tmp=board[x][y]            board[x][y]='D'            for i in range(9):                if board[i][y]==tmp:                     return False            for i in range(9):                if board[x][i]==tmp:                     return False            for i in range(3):                for j in range(3):                    if board[(x//3)*3+i][(y//3)*3+j]==tmp:                         return False            board[x][y]=tmp            return True                def dfs(board):            for i in range(9):                for j in range(9):                    if board[i][j]=='.':                        for k in '123456789':                            board[i][j]=k                            if isValid(i,j) and dfs(board):                                return True                            board[i][j]='.'                        return False            return True        dfs(board)

转载地址:http://cuhzb.baihongyu.com/

你可能感兴趣的文章
用一个小游戏入门深度强化学习
查看>>
如何应用 BERT :Bidirectional Encoder Representations from Transformers
查看>>
5 分钟入门 Google 最强NLP模型:BERT
查看>>
强化学习第1课:像学自行车一样的强化学习
查看>>
强化学习第2课:强化学习,监督式学习,非监督式学习的区别
查看>>
强化学习第3课:有些问题就像个赌局
查看>>
强化学习第4课:这些都可以抽象为一个决策过程
查看>>
强化学习第5课:什么是马尔科夫决策过程
查看>>
强化学习第6课:什么是 Crossentropy 方法
查看>>
强化学习第7课:交叉熵方法的一些局限性
查看>>
强化学习 8: approximate reinforcement learning
查看>>
图解什么是 Transformer
查看>>
代码实例:如何使用 TensorFlow 2.0 Preview
查看>>
6 种用 LSTM 做时间序列预测的模型结构 - Keras 实现
查看>>
走进JavaWeb技术世界1:JavaWeb的由来和基础知识
查看>>
走进JavaWeb技术世界2:JSP与Servlet的曾经与现在
查看>>
走进JavaWeb技术世界3:JDBC的进化与连接池技术
查看>>
走进JavaWeb技术世界4:Servlet 工作原理详解
查看>>
走进JavaWeb技术世界5:初探Tomcat的HTTP请求过程
查看>>
走进JavaWeb技术世界6:Tomcat5总体架构剖析
查看>>