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

Valid Sudoku

时间:2014-08-10 23:57:10      阅读:431      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   for   ar   div   amp   

这道题是个细节实现题,只要把valid sudoku满足的三个条件判断一下即可。

valid sudoku需满足下列三个条件:

1)每一行数字1~9有且只出现一次。2)每一列数字1~9有且只出现一次。3)对于每个3*3的sub-box(用i=3、6,j=3、6两条线划分,总共9个sub-box)数字1~9有且只出现一次。

基本思路是可以用一个哈希表记录一个数字是否在一行(列,sub-box)中出现过,如果出现过,则返回false。

 1 class Solution {
 2 public:
 3     bool isValidSudoku(vector<vector<char> > &board) {
 4         //validate rows and columns
 5         for(int i = 0; i < 9; i++){
 6             unordered_map<char,bool> row_map;
 7             unordered_map<char,bool> column_map;
 8             for(int j = 0; j < 9; j++){
 9                 if(board[i][j] != .){
10                   if(row_map.find(board[i][j]) != row_map.end()) return false;
11                   row_map[board[i][j]] = true;
12                     
13                 }
14                 if(board[j][i] != .){
15                   if(column_map.find(board[j][i]) != column_map.end()) return false;
16                   column_map[board[j][i]] = true;
17                 }
18             }
19         }
20         //validate subgrids
21         for(int i = 0; i < 9; i += 3){
22             for(int j = 0; j < 9; j += 3){
23                 unordered_map<char,bool> grid_map;
24                 for(int row = i; row < i+3; row++)
25                     for(int col = j; col < j+3; col++){
26                         if(board[row][col] != .){
27                             if(grid_map.find(board[row][col]) != grid_map.end()) return false;
28                             grid_map[board[row][col]] = true;
29                         }
30                     }
31             }
32         }
33         return true;
34     }
35 };

还可以用一个数组来代替unordered_map,这样可以用更少的空间。

Valid Sudoku,布布扣,bubuko.com

Valid Sudoku

标签:style   blog   color   io   for   ar   div   amp   

原文地址:http://www.cnblogs.com/Kai-Xing/p/3903407.html

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