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

    思路:

    dfs+数独游戏规则。

    数独游戏规则是:

    同行同列不能有重复数字;并且每9宫内不能有重复数字

     1 class Solution {
     2 public:
     3     bool isValid(vector<vector<char> > &board, int a, int b) {
     4         int i,j;
     5         for(i = 0; i < 9; i++)
     6             if(i != a && board[i][b] == board[a][b])
     7                 return false;
     8 
     9         for(j = 0; j < 9; j++)
    10             if(j != b && board[a][j] == board[a][b])
    11                 return false;
    12 
    13         int x = a/3*3;
    14         int y = b/3*3;
    15         for(i = 0; i < 3; i++)
    16             for(j = 0; j< 3; j++)
    17                 if(x+i != a && y+j != b && board[x+i][y+j] == board[a][b])
    18                     return false;
    19         return true;
    20     }
    21     bool solveSudokudfs(vector<vector<char> > &board)
    22     {
    23         for(int i = 0; i < 9; i++)
    24             for(int j = 0; j < 9; j++)
    25             {
    26                 if(board[i][j] == '.')
    27                 {
    28                     for(int k = 1; k <= 9; k++)
    29                     {
    30                         board[i][j] = '0' + k;
    31                         if(isValid(board,i,j) && solveSudokudfs(board))
    32                             return true;
    33                         board[i][j] = '.';
    34                     }
    35                     return false;
    36                 }
    37             }
    38         return true;
    39     }
    40     void solveSudoku(vector<vector<char> > &board) {
    41         // Note: The Solution object is instantiated only once.
    42         solveSudokudfs(board);
    43     }
    44 };
  • 相关阅读:
    phpstorm操作集锦
    图片、音频获取二进制流或url的blob值
    sublime text 3 快捷键
    dd与sql 打印工具
    php生成二维码(可带logo)
    jQuery append加入的元素 绑定事件无效
    Linux运维架构师学习之路
    硬盘安装win7
    Composer安装与使用
    Js循环做法
  • 原文地址:https://www.cnblogs.com/cane/p/3903435.html
Copyright © 2011-2022 走看看