LeetCode(38)-Valid Sudoku
题目:
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 '.'.

A partially filled sudoku which is valid.
A valid Sudoku board (partially filled) is not necessarily solvable. Only the filled cells need to be validated.
思路:
首先这是一道数独题目,关于数独的性质,可以参考下面的链接
数独规则考虑根据数独的各个条件来逐个解决,需要判断每行,每一列,以及每个小方格是否是1~9,出现一次,思路是建立一个list添加,判断是否出现重复,出现返回false;同样如果board == null,或者行数和列数不等于9,也返回false
-
代码:
public class Solution {
public boolean isValidSudoku(char[][] board) {
ArrayList<ArrayList<Character>> rows = new ArrayList<ArrayList<Character>>();
ArrayList<ArrayList<Character>> cols = new ArrayList<ArrayList<Character>>();
ArrayList<ArrayList<Character>> boxs = new ArrayList<ArrayList<Character>>();
if(board == null || board.length != 9|| board[0].length != 9){
return false;
}
for(int i = 0;i < 9;i++){
rows.add(new ArrayList<Character>());
cols.add(new ArrayList<Character>());
boxs.add(new ArrayList<Character>());
}
for(int a = 0;a < board.length;a++){
for(int b = 0;b < board[0].length;b++){
if(board[a][b] == '.'){
continue;
}
ArrayList<Character> row = rows.get(a);
if(row.contains(board[a][b])){
return false;
}else{
row.add(board[a][b]);
}
ArrayList<Character> col = cols.get(b);
if(col.contains(board[a][b])){
return false;
}else{
col.add(board[a][b]);
}
ArrayList<Character> box = boxs.get(getNum(a,b));
if(box.contains(board[a][b])){
return false;
}else{
box.add(board[a][b]);
}
}
}return true;
}
public int getNum(int i,int j){
return (i/3)*3+j/3;
}
}
LeetCode(38)-Valid Sudoku的更多相关文章
- [LeetCode] 036. Valid Sudoku (Easy) (C++)
指数:[LeetCode] Leetcode 解决问题的指数 (C++/Java/Python/Sql) Github: https://github.com/illuz/leetcode 036. ...
- LeetCode:36. Valid Sudoku,数独是否有效
LeetCode:36. Valid Sudoku,数独是否有效 : 题目: LeetCode:36. Valid Sudoku 描述: Determine if a Sudoku is valid, ...
- LeetCode 36 Valid Sudoku
Problem: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board ...
- 【leetcode】Valid Sudoku
题目简述: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board cou ...
- Java [leetcode 36]Valid Sudoku
题目描述: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board cou ...
- [leetcode] 20. Valid Sudoku
这道题目被放在的简单的类别里是有原因的,题目如下: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. ...
- 蜗牛慢慢爬 LeetCode 36.Valid Sudoku [Difficulty: Medium]
题目 Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could ...
- leetCode 36.Valid Sudoku(有效的数独) 解题思路和方法
Valid Sudoku Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku bo ...
- LeetCode 036 Valid Sudoku
题目要求:Valid Sudoku Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudo ...
随机推荐
- FORM当前状态分析
变量 SYSTEM.RECORD_STATUS 确定当前记录状态.有四种返回值:CHANGED表示记录从数据库取来,并且该记录至少一个基表列被更新:INSERT表示给一个非取自数据库记录的基表 ...
- Android 增量更新和升级
在年初的时候,尝试了一把热修复技术,当时选择的是阿里的andfix,使用起来也很简单,这里就不在多少,如果你对andfix有兴趣请链接:点击打开链接.虽然网上将热修复的文章很多,不过我还是想说原理,然 ...
- 自定义gradview
http://blog.csdn.net/jdsjlzx/article/details/7525724 虽然Android已自带了GridView,但是,却不够灵活,同时也不能自由添加控件,因此,本 ...
- 【ShaderToy】开篇
写在前面 呜呼,好久没有写博客了,好惭愧.题外话,感觉越大就越想家,希望可以一直和家人在一起,哪怕只是坐在一起不说话也觉得很温暖,一想到要分开眼睛就开始酸,哎.开学还是爬上来老实更新博客学习吧~ 今天 ...
- 07 设置View的显示与隐藏
在代码中: 例子: <span style="font-size:14px;">ImageButton imageButton = new ImageButton(th ...
- 03 Button 按钮
按钮 父类: TextView >概念:可以被按,点击 并且执行一个动作 >属性: 在按钮内部的上下左右设置图片: androi ...
- Torch的安装和学习
Long long ago, 就已经安装好Torch,这里再记录一下.Torch是Facebook开发的用于AI的科学计算框架,可广泛运用于机器学习的很多算法.相比Caffe,其接口运用更加方便,使用 ...
- CUDA学习,第一个kernel函数及代码讲解
前一篇CUDA学习,我们已经完成了编程环境的配置,现在我们继续深入去了解CUDA编程.本博文分为三个部分,第一部分给出一个代码示例,第二部分对代码进行讲解,第三部分根据这个例子介绍如何部署和发起一个k ...
- pig limit 少于10行,会返回所有记录
my = limit g_log 3; STORE my INTO '/user/wizad/tmp/my' USING PigStorage(','); 这样会返回g_log的所有记录. 要大于等于 ...
- android:background="@color/white" [create file color.xml at res/values/]
<resources><color name="white">#FFFFFF</color><!--白色 --><col ...