首页 > 其他 > 详细

leetcode 之Valid Sudoku(七)

时间:2016-05-15 18:18:14      阅读:234      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!