博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode :Sudoku Solver
阅读量:5793 次
发布时间:2019-06-18

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

Sudoku Solver

 
Total Accepted: 13937 
Total Submissions: 66832

Write a program to solve a Sudoku puzzle by filling the empty cells.

Empty cells are indicated by the character '.'.

You may assume that there will be only one unique solution.

A sudoku puzzle...

...and its solution numbers marked in red.

public class Solution {    public void solveSudoku(char[][] board) {           solve(board);           }    private boolean solve(char[][] board) {         for (int i = 0; i < 9; i++) {            for (int j = 0; j < 9; j ++) {                if (board[i][j] =='.') {                    for (char k = '1'; k <= '9'; k++) {                        board[i][j] = k;                        if (isValid(board, i, j) && solve(board)) {                            return true;                        }                        board[i][j] = '.';                    }                    return false;                }            }        }        return true;    }    private boolean isValid(char[][] board,int x, int y ) {        boolean [][] square = new boolean[9][9];        for (int i = 0; i < 9; i++) {            if (y != i &&board[x][y] == board[x][i]){                return false;            }        }        for (int i = 0; i < 9; i++) {            if (x != i &&board[i][y] == board[x][y]){                return false;            }        }        for (int i = (x / 3) * 3; i < (x / 3) * 3 + 3; i++) {            for (int j = (y /3) * 3; j < (y / 3) *3 + 3; j++) {                if (x != i && y != j && board[i][j] == board[x][y]) {                    return false;                }            }        }        return true;    }    }
这个题目比較有意图。第一次做的时候 是对每个位置生成后的做推断。在ECLIPSE上是过的。可是在OJ上超时了。

之后才想到,并不须要对整个矩阵做推断,仅仅要对更改位置的字进行推断是不是符合要求就能够了!

转载于:https://www.cnblogs.com/gavanwanggw/p/6834919.html

你可能感兴趣的文章
iOS开发网络篇—GET请求和POST请求
查看>>
字典dict
查看>>
游戏名词解释
查看>>
mongodb数据的导出和导入
查看>>
白话算法(7) 生成全排列的几种思路(二) 康托展开
查看>>
d3 v4实现饼状图,折线标注
查看>>
微软的云策略
查看>>
SQL server中 常用系统函数 可以学习下
查看>>
剑指offer---06---数组,二分法---旋转数组的最小数字
查看>>
Valid Parentheses
查看>>
【ES6】数值的扩展
查看>>
远程桌面开启(命名空间)
查看>>
Mongoose的分页功能
查看>>
Compare Version Numbers
查看>>
微信小程序多列选择器
查看>>
性能测试之稳定性测试
查看>>
ES6的 Iterator 遍历器
查看>>
拿事件说那么一些事
查看>>
Deriving from BindableBase更简单的绑定通知
查看>>
2019届高二(下)半期考试题(文科)
查看>>