• leetcode[37]Sudoku Solver


    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.

    #define NUM 9
    class Solution {
    public:
    bool isValidij(vector<vector<char> > &board, int i, int j) 
    {
        for (int k=0;k<NUM;k++)
        {
            if (k!=j)
            {
                if(board[i][k]==board[i][j])return false;
            }
            if (k!=i)
            {
                if(board[k][j]==board[i][j])return false;
            }
        }
        int a=i/3*3;
        int b=j/3*3;
        for (int ii=a;ii<a+3;ii++)
        {
            for (int jj=b;jj<b+3;jj++)
            {
                if(ii!=i&&jj!=j)
                {
                    if (board[ii][jj]==board[i][j])return false;
                }
            }
        }
        return true;
    }
    bool solve(vector<vector<char> > &board) 
    {
        for (int i=0;i<NUM;i++)
        {
            for (int j=0;j<NUM;j++)
            {
                if (board[i][j]=='.')
                {
                    int k=1;
                    for (;k<=NUM;k++)
                    {
                        board[i][j]='0'+k;
                        if (isValidij(board,i,j))
                        {
                            if(solve(board))return true;
                        }
                        board[i][j]='.';
                    }
                    return false;
                }
            }
        }
        return true;
    }
    void solveSudoku(vector<vector<char> > &board) 
    {
            solve(board);
    }
    };
  • 相关阅读:
    乱七八糟的
    C# 获取客户端电脑MAC 地址
    CheckInput
    gridview 合计行实现
    乱七八糟22
    jQuery UI CSS Framework
    CSS float和CSS clear
    smtp,POP3,IMAP
    960GridSystem
    CSS 清除浮动
  • 原文地址:https://www.cnblogs.com/Vae1990Silence/p/4283592.html
Copyright © 2020-2023  润新知