LeetCode-36. 有效的數獨
阿新 • • 發佈:2018-12-25
題目地址:https://leetcode-cn.com/problems/valid-sudoku/
思路:暴力
AC程式碼:
class Solution { public: bool isValidSudoku(vector<vector<char>>& board) { // 行 for(int i=0;i<9;i++){ bool flag[10]; memset(flag,false,sizeof(flag)); for(int j=0;j<9;j++){ int now = board[i][j] - '0'; if(now<0 || now>9) continue; if(flag[now]) return false; flag[now] = true; } } //列 for(int i=0;i<9;i++){ bool flag[10]; memset(flag,false,sizeof(flag)); for(int j=0;j<9;j++){ int now = board[j][i] - '0'; if(now<0 || now>9) continue; if(flag[now]) return false; flag[now] = true; } } //九宮格 int xx[10] = {0,0,0,1,1,1,2,2,2}; int yy[10] = {0,1,2,0,1,2,0,1,2}; for(int i=0;i<=6;i+=3){ for(int j=0;j<=6;j+=3){ bool flag[10]; memset(flag,false,sizeof(flag)); for(int k = 0;k<9;k++){ int now = board[i+xx[k]][j+yy[k]]-'0'; if(now<0 || now>9) continue; if(flag[now]) return false; flag[now] = true; } } } return true; } };