标签:
题目描述:public class Solution { public bool IsValidSudoku(char[,] board) { var row = 9; var col = 9; // check each row for(var i = 0;i < row;i ++){ var flag = new bool[9];; for(var j = 0;j < col; j++){ var b = Check(board, i, j, ref flag); if(!b){ return false; } } } // check each column for(var i = 0;i < col;i ++){ var flag = new bool[9];; for(var j = 0;j < row; j++){ var b = Check(board, j, i, ref flag); if(!b){ return false; } } } // check each 3*3 for(var i = 0;i < 7; i += 3){ for(var j = 0;j < 7; j += 3){ if(!Check_3_3(board, i, j)){ return false; } } } return true; } private bool Check_3_3(char[,] board, int i , int j) { var flag = new bool[9]; for(var r = i; r < i + 3; r++){ for(var c = j; c < j + 3; c++){ var b = Check(board, r, c, ref flag); if(!b){ return false; } } } return true; } private bool Check(char[,] board, int i, int j, ref bool[] flag) { //Console.WriteLine(i +","+j); if(board[i,j] != ‘.‘){ if(flag[N(board[i,j])]){ return false; } flag[N(board[i,j])] = true; } return true; } private int N(char c) { return c - ‘1‘; } }
标签:
原文地址:http://blog.csdn.net/lan_liang/article/details/50144377