码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode 之Valid Sudoku(七)

时间:2016-05-15 18:18:34      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

 判断行、列、九宫格内数字是否重复。

 按照行、列、九宫格进行检查即可。

 

技术分享
bool validSudoku(const vector<vector<char>>& board)
      {
          bool used[9];
          for (int i = 0; i < 9; i++)
          {
              fill(used, used + 9, false);

              //检查行
              for (int j = 0; j < 9; j++)
              {
                  if(!check(board[i][j], used))
                      return false;
              }
              fill(used, used + 9, false);
              //检查列
              for (int j = 0; j < 9; j++)
              {
                  if (!check(board[j][i], used))
                      return false;
              }
          }
          //检查9个格子
          for (int i = 0; i < 3; i++)
          {
              for (int j = 0; j < 3; j++)
              {
                  fill(used, used + 9, false);

                  for (int r = 3 * i; r < 3 * i + 3; r++)
                  {
                      for (int c = 3 * j; c < 3 * j + 3; c++)
                      {
                          if (!check(board[i][j], used))
                              return false;
                      }
                  }
              }
          }

          return true;
      }
 bool check(char ch, bool used[9])
      {
          if (ch == .) return true;
          if (used[ch - 1])return false;

          return used[ch - 1] = true;
      }
View Code

 

leetcode 之Valid Sudoku(七)

标签:

原文地址:http://www.cnblogs.com/573177885qq/p/5495542.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!