题目看起来有些难,但是其实解法很通俗,就是每一步就尝试一遍所有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