36. Valid Sudoku
2016-02-10 01:33
225 查看
9个横行9个竖行9个3*3的方格各设置一个set。
对每个方格遍历,“。”继续,数字的话判断哪个格的横竖行有没有重复的数字。
方格判断用的是i/3*3 + j/3把9*9的格分成
public class Solution {
public boolean isValidSudoku(char[][] board) {
List<Set<Character>>rl=new ArrayList<Set<Character>>();
List<Set<Character>>cl=new ArrayList<Set<Character>>();
List<Set<Character>>sl=new ArrayList<Set<Character>>();
for(int i=0;i<9;i++){
rl.add(new HashSet<Character>());
cl.add(new HashSet<Character>());
sl.add(new HashSet<Character>());
}
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
char c=board[i][j];
if(c=='.')continue;
else if(rl.get(i).contains(c) || cl.get(j).contains(c) || sl.get(i/3*3 + j/3).contains(c)) return false;
else{
rl.get(i).add(c);
cl.get(j).add(c);
sl.get(i/3*3+j/3).add(c);
}
}
}
return true;
}
}了9个3*3;
对每个方格遍历,“。”继续,数字的话判断哪个格的横竖行有没有重复的数字。
方格判断用的是i/3*3 + j/3把9*9的格分成
public class Solution {
public boolean isValidSudoku(char[][] board) {
List<Set<Character>>rl=new ArrayList<Set<Character>>();
List<Set<Character>>cl=new ArrayList<Set<Character>>();
List<Set<Character>>sl=new ArrayList<Set<Character>>();
for(int i=0;i<9;i++){
rl.add(new HashSet<Character>());
cl.add(new HashSet<Character>());
sl.add(new HashSet<Character>());
}
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
char c=board[i][j];
if(c=='.')continue;
else if(rl.get(i).contains(c) || cl.get(j).contains(c) || sl.get(i/3*3 + j/3).contains(c)) return false;
else{
rl.get(i).add(c);
cl.get(j).add(c);
sl.get(i/3*3+j/3).add(c);
}
}
}
return true;
}
}了9个3*3;
相关文章推荐
- HDU 4508湫湫系列故事――减肥记i-简单的完全背包
- 【Linux命令】crontab命令
- python学习笔记——文件操作
- 【NYOJ】[477]A+B Problem III
- 1012. The Best Rank (25)
- 290. Word Pattern
- HDU 4563 御剑术I(背包)
- HDU 4501 小明系列之买年货(三维背包)
- 【NYOJ】[811]变态最大值
- 1. Two Sum
- 【慕课笔记】U4 多态 第2节 多态中的引用类型转换
- 在PC端实现HTML5-geolocation的一些细节
- 选择
- GSON
- bzoj3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛
- VS2010 Error : Unable to start program Access is denied
- Notes of Python Learning 2/10/2016
- NSGAIII中的Niche preservation操作
- 上传图片或文件到服务器端
- NSGAIII中的Associate