题解 | #Sudoku#

Sudoku

https://www.nowcoder.com/practice/78a1a4ebe8a34c93aac006c44f6bf8a1

dfs(二维数组)
遍历行
    遍历列
        找到为空的格子
        从1-9遍历,填上任意可能的数
            dfs(二维数组),结果为true,返回true
            否则map[i][j] = 0;
        遍历完1-9还没true,返回false
遍历完了,返回true
数独结果有2种可能,1.遍历完9*9,每次都碰到false就返回了,直到9行9列也是如此,数独无解
2.如果空格填的数使得其他空格无数可填,会在第三层循环中将map[i][j]设置为0,进行后面数字的遍历,这样也不会使得dfs无限循环,
如果9*9都遍历完了,说明找到了第一个可行的解
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务