【LeetCode-36】Valid Sudoku

来源:互联网 发布:安卓鼓机软件 编辑:程序博客网 时间:2024/05/16 20:28

这道题做起来非常简单了,开始错误的理解了题目的意思,首先判断每一行是否有重复元素,再判断每一列是否有重复元素,最后判断每一个9宫格是否有重复元素

判断9宫格时,要细心一些。

public class ValidSudoku {Map<Integer,Character> map = new HashMap<Integer, Character>();public boolean isValidSudoku(char[][] board) {boolean result = true;//每一行for(int i = 0;i < 9;i ++){initMap();for(int j = 0;j < 9;j ++){if(board[i][j] != '.'){if(map.containsValue(board[i][j])){return false;}else{map.put(j, board[i][j]);}}}}//每一列for(int i = 0;i < 9;i ++){initMap();for(int j = 0;j < 9;j ++){if(board[j][i] != '.'){if(map.containsValue(board[j][i])){return false;}else{map.put(j, board[j][i]);}}}}//判断每一个9宫格for(int k = 0;k < 3;k ++){for(int m = 0;m < 3;m ++){initMap();int count = 0;for(int i = 3 * k;i < 3 * k + 3;i ++){for(int j = 3 * m;j < 3 * m + 3;j ++){if(board[i][j] != '.'){if(map.containsValue(board[i][j])){return false;}else{map.put(count ++ , board[i][j]);}}}}}}return result;    }public void initMap(){map = new HashMap<Integer, Character>();}}



0 0
原创粉丝点击