zoukankan      html  css  js  c++  java
  • LeetCode :Sudoku Solver

    Sudoku Solver

     Total Accepted: 13937 Total Submissions: 66832My Submissions

    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上超时了。

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




  • 相关阅读:
    对拍源码QwQ
    BZOJ-3875: [Ahoi2014&Jsoi2014]骑士游戏(SPFA+DP)
    2017年10月19日23:31:57
    BZOJ-1064: [Noi2008]假面舞会 (综合性图论题)
    BZOJ-1002: [FJOI2007]轮状病毒(打表找规律or递推 + 高精度)
    BZOJ1397 Ural 1486 Equal squares
    BZOJ3417 Poi2013 Tales of seafaring
    BZOJ2286 [Sdoi2011消耗战
    BZOJ1370 [Baltic2003]Gang团伙
    BZOJ2530 [Poi2011]Party
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/6834919.html
Copyright © 2011-2022 走看看