博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode: Valid Sudoku
阅读量:7174 次
发布时间:2019-06-29

本文共 1992 字,大约阅读时间需要 6 分钟。

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 '.'.
 

网上看到的最优做法:

1 public class Solution { 2 public boolean isValidSudoku(char[][] board) { 3     for (int i=0; i<9; i++) { 4         if (!isParticallyValid(board,i,0,i,8)) return false; 5         if (!isParticallyValid(board,0,i,8,i)) return false; 6     } 7     for (int i=0;i<3;i++){ 8         for(int j=0;j<3;j++){ 9             if (!isParticallyValid(board,i*3,j*3,i*3+2,j*3+2)) return false;10         }11     }12     return true;13 }14 private boolean isParticallyValid(char[][] board, int x1, int y1,int x2,int y2){15     Set singleSet = new HashSet();16     for (int i= x1; i<=x2; i++){17         for (int j=y1;j<=y2; j++){18             if (board[i][j]!='.') if(!singleSet.add(board[i][j])) return false;19         }20     }21     return true;22 }23 }

 

然后在解Sudoku Solver的时候,遇到了一个很简单的解法(但是这里不适用):

1 public class Solution { 2     public boolean isValidSudoku(char[][] board) { 3         if (board == null || board.length != 9 || board[0].length != 9) return false; 4         for (int i = 0; i < 9; i++) { 5             for (int j = 0; j < 9; j++) { 6                 if (board[i][j] == '.') continue; 7                 if (!isvalid(board, i, j)) return false; 8             } 9         }10         return true;11     }12     13     public boolean isvalid(char[][] board, int i, int j) {14         for (int a = 0; a < 9; a++) {15             if (a != i && board[a][j] == board[i][j]) return false;16         }17         18         for (int b = 0; b < 9; b++) {19             if (b != j && board[i][b] == board[i][j]) return false; 20         }21         22         for (int c = i/3*3; c < i/3*3 + 3; c++) {23             for (int d = j/3*3; d < j/3*3 + 3; d++) {24                 if ((c != i || d != j) && board[c][d] == board[i][j]) return false;25             }26         }27         28         return true;29     }30 }

 

转载地址:http://cabzm.baihongyu.com/

你可能感兴趣的文章
(一)ASP.NET中JavaScript的中英文(多语言)实现方案
查看>>
如何构建ASP.NET MVC4&JQuery&AJax&JSon示例
查看>>
最大数——栈
查看>>
Error: Divergence detected in AMG solver: k
查看>>
Spring学习系列(一) Spring简介
查看>>
Windows绘图和GDI+疑难
查看>>
C#字符串的方法
查看>>
ubuntu搜狗拼音安装
查看>>
小牢骚
查看>>
redis 五种数据结构详解(string,list,set,zset,hash)
查看>>
烤鸡翅
查看>>
XSS(跨站脚本攻击)
查看>>
IT兄弟连 JavaWeb教程 JSP中的注释
查看>>
javascript截取字符串长度
查看>>
常见算法整理
查看>>
Hadoop 2.5.1 + HBase 0.98 单机
查看>>
javascript页面定时跳转
查看>>
结对-英文词频检测10.13
查看>>
在ASP中限制同一表单被多次提交
查看>>
寒假作业1 c题
查看>>