LeetCode:Valid Sudoku

来源:互联网 发布:信息比率 最优化 编辑:程序博客网 时间:2024/05/22 03:22

判断数独就是检查其是否满足三个条件:

1 每一行的元素没有重复,且范围在1~9

2 每一列的元素没有重复,且范围在1~9

2 每一个9宫格元素没有重复,且范围在1~9

class Solution {public:    bool isValidSudoku(vector<vector<char> > &board) {        unordered_map<char,bool>row_map;        unordered_map<char,bool>column_map;        unordered_map<char,bool>mini_map;        int i,j,m,n;        for(i=0;i<board.size();i++){            row_map.clear();            column_map.clear();           for(j=0;j<board[i].size();j++)            {                if(board[i][j]!='.')                {                    if(row_map.find(board[i][j])!=row_map.end())                        return false;                    else                    {                        row_map[board[i][j]]=true;                    }                }                if(board[j][i]!='.')                {                    if(column_map.find(board[j][i])!=column_map.end())                        return false;                    else                    {                        column_map[board[j][i]]=true;                    }                }            }        }        for(i=0;i<board.size();i=i+3){            for(j=0;j<board[i].size();j=j+3){             mini_map.clear();            for(n=0;n<3;n++)            for(m=0;m<3;m++)            {                if(board[i+m][j+n]!='.')                {                    if(mini_map.find(board[i+m][j+n])!=mini_map.end())                        return false;                    else                    {                        mini_map[board[i+m][j+n]]=true;                    }                }            }            }        }        return true;    }};


0 0
原创粉丝点击