36、Valid Sudoku

昨天没更新,是因为最近和同学在追天池的一个比赛,昨天写程序了。再加上回来有点累了,就没写。今天早点更新。毕竟还有3个粉丝。。。哈哈哈哈哈哈
题目:Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules.The Sudoku board could be partially filled, where empty cells are filled with the character'.'.

36、Valid Sudoku_第1张图片
image

思路:这个题开始一看感觉很难,但是仔细想一下其实不难,根据规则,其实就是三个限制条件:每行中不能出现重复的1-9,每列不能出现重复的1-9,每个3*3子矩阵不能重复。那么就根据这三个规则依次遍历待判断的矩阵中每个元素就可以了。Java代码如下:

public static boolean IsValidSudoku(char[][] board) {
        boolean result=true;
       //判断每行是否满足规则
        for(int i=0;i0)
                    {
                        return false;
                    }
                    else
                    {
                        count[Integer.parseInt(String.valueOf(board[i][j]))-1]++;
                    }
                }
                else
                {
                    continue;
                }
            }
        }
       //判断每列是否满足规则
        for(int j=0;j0)
                    {
                        return false;
                    }
                    else
                    {
                        count[Integer.parseInt(String.valueOf(board[i][j]))-1]++;
                    }
                }
                else
                {
                    continue;
                }
            }
        }
       //判断3*3子矩阵是否满足规则
        for(int i=0;i0)
                            {
                                return false;
                            }
                            else
                            {
                                count[Integer.parseInt(String.valueOf(board[row][col]))-1]++;
                            }
                        }
                        else
                        {
                            continue;
                        }
                    }
                }
            }
        }
        return result;
    }

注意count数组的位置。

你可能感兴趣的:(36、Valid Sudoku)