Valid Sudoku
来源:互联网 发布:简单的淘宝昵称大全 编辑:程序博客网 时间:2024/06/18 15:54
论看懂题目的重要性!!!这道题目实际是要求判断给出的数独是否是有效数独(每行每列及每个小九宫格都没有重复数字),而不是填充数独!没有看清题目的人绞尽脑汁地在纸上把数独填满了,又绞尽脑汁地想着怎样用代码实现,结果知道真相后,只能绞尽脑汁地骂自己。。。
//分别对行,列,以及九宫格进行判断,确认是否每行、每列以及每个小九宫格都没有出现重复的数,是则返回truepublic class Solution {public boolean isValidSudoku(char[][] board) { int i; int j; char p; for (i = 0; i < 9; i ++){ //行判断 int a[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; for (j = 0; j < 9; j ++){ p = board[i][j]; if (p != '.'){ if (a[p - '1'] == 0){ a[p - '1'] = 1; } else{ return false; } } } } for (i = 0; i < 9; i ++){ //列判断 int a[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; for (j = 0; j < 9; j ++){ p = board[j][i]; if (p != '.'){ if (a[p - '1'] == 0){ a[p - '1'] = 1; } else{ return false; } } } } int row; int col; int r; int c; for (i = 0; i < 9; i ++){ row = i / 3 * 3; col = i % 3 * 3; int a[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; for (r = row; r < (row + 3); r ++){ for (c = col; c < (col + 3); c ++){ p = board[r][c]; if (p != '.'){ if (a[p - '1'] == 0){ a[p - '1'] = 1; } else{ return false; } } } } } return true; }}
0 0
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- p52 29
- 第六周项目三人数不定的工资类
- NOJ1553---Beautiful Walls(尺取法)
- java语言基础中
- win8 写入注册表
- Valid Sudoku
- C#求一元二次方程的根
- D - Cyclic Nacklace HDU3746 (kmp 计算字符串最小循环节 )
- zoj 3782 Ternary Calculation(简单题,但有陷阱)
- Oracle SQL性能优化
- InnoDB锁问题
- ZooKeeper简要笔记
- Google+ Authentication in ASP.Net
- 第六周项目五友元类