题目看起来有些难,但是其实解法很通俗,就是每一步就尝试一遍所有9个数字,然后看哪个数字是可以当前合理的。
主体还是一个递归函数,找出当前适合的数后再递归调用。找出合适的数的方法就是遍历9个数字填充到当前位置,然后用验证函数进行验证,然后验证通过就继续调用递归函数解出下一个位置,如果验证不通过就再尝试下一个数字。如果遍历了一遍都没有发现合适的数字,那么就返回false。当发现所有空位都填充满了之后,就可以返回true了。
1 | public class Solution { |
题目看起来有些难,但是其实解法很通俗,就是每一步就尝试一遍所有9个数字,然后看哪个数字是可以当前合理的。
主体还是一个递归函数,找出当前适合的数后再递归调用。找出合适的数的方法就是遍历9个数字填充到当前位置,然后用验证函数进行验证,然后验证通过就继续调用递归函数解出下一个位置,如果验证不通过就再尝试下一个数字。如果遍历了一遍都没有发现合适的数字,那么就返回false。当发现所有空位都填充满了之后,就可以返回true了。
1 | public class Solution { |
原文作者: findingsea
原文链接: http://findingsea.github.io/2015/03/31/sudoku-solver/
发表日期: March 31st 2015, 9:08:00 am
版权声明: 本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可
jsonContent:
meta: false
pages: false
posts:
title: true
date: true
path: true
text: false
raw: false
content: false
slug: false
updated: false
comments: false
link: false
permalink: false
excerpt: false
categories: true
tags: true