1. 程式人生 > >36. Valid Sudoku (判斷數獨)

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

Note:

A valid Sudoku board (partially filled) is not necessarily solvable. Only the filled cells need to be validated.

import java.util.Hashtable;
public class Solution {
    public boolean isValidSudoku(char[][] board) {
		Map<Character, Integer> table = new Hashtable<Character, Integer>();
		for (int i = 0; i < 9; i++) {
			for (int j = 0; j < 9; j++) {
				if (table.get(board[i][j]) == null)
					table.put(board[i][j], 1);
				else if (board[i][j] != '.')
					return false;
			}
			table.clear();
		}
		for (int i = 0; i < 9; i++) {
			for (int j = 0; j < 9; j++) {
				if (table.get(board[j][i]) == null)
					table.put(board[j][i], 1);
				else if (board[j][i] != '.')
					return false;
			}
			table.clear();
		}
		for (int i = 0; i < 9; i++) {
			for (int j = 0; j < 9; j++) {
				if (table.get(board[i][j]) == null)
					table.put(board[i][j], 1);
				else if (board[i][j] != '.')
					return false;
			}
			table.clear();
		}
		for (int x = 0; x < 7; x += 3)
			for (int y = 0; y < 7; y += 3) {
				for (int i = x; i < x + 3; i++) {
					for (int j = y; j < y + 3; j++) {
						if (table.get(board[i][j]) == null)
							table.put(board[i][j], 1);
						else if (board[i][j] != '.')
							return false;
					}
				}
				table.clear();
			}
		return true;
	}
}


相關推薦

36. Valid Sudoku 判斷

Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could be partially filled, where empty cells

leetCode 36.Valid Sudoku(有效的) 解題思路和方法

Valid Sudoku Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could be partially filled, where

【LeetCode】36. Valid SudokuC++

地址:https://leetcode.com/problems/valid-sudoku/ 題目: Determine if a 9x9 Sudoku board is valid. Only the filled cells need to be validated accord

dfs0634-

urn 是把 image main dfs搜索 true 流行 搜索 etc 問題描述 數獨是非常流行的益智遊戲,把一個9x9的九宮格分成9個小的3x3的小九宮,如下圖所示。在這個九宮格上,每個小格子可以填的數字為1,2,3,...,9。初始時,某些格子已經填好數字,剩余

Valid Sudoku 有效的

class Solution { public:     bool isValidSudoku(vector<vector<char> > &board) {         bool used[9];         for(int i=0

LeetCode 36. 有效的 Valid SudokuC語言

題目描述: 判斷一個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。 數字 1-9 在每一行只能出現一次。 數字 1-9 在每一列只能出現一次。 數字 1-9 在每一個以粗實線分隔的 3x3 宮內只能出現一次。 上圖是一個部分填

LeetCode 36. Valid Sudoku 判斷9*9的板是否有效

Determine if a 9x9 Sudoku board is valid. Only the filled cells need to be validated according to the following rules: Each row must cont

36. Valid Sudoku/37. Sudoku Solver - 問題-- backtracking 經典

題意: 經典的遞迴題, 要求:除了要求 橫豎都填滿 1~9外, 每個3*3也都要求滿足 1~9  36. 陣列可以部分填充, 問是否一個有效的 sudoku.  寫了個好燒腦的 四重迴圈來check 3*3 的部分。  重點在於 用陣列作為hash 。 然後對於 che

[leetcode]Valid Palindrome 判斷迴文 C語言實現

Valid Palindrome Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases. F

LintCode Valid Sudoku 判斷是否合法

請判定一個數獨是否有效。 該數獨可能只填充了部分數字,其中缺少的數字用 . 表示。 樣例 下列就是一個合法數獨的樣例。 Determine whether a Sudoku is valid. The Sudoku board could be par

HDU 1426 Sudoku Killerdfs 解數

java oid recommend 還要 targe 個數 else content 字符數 傳送門: http://acm.hdu.edu.cn/showproblem.php?pid=1426 Sudoku Killer Time Limit: 2000/1000 M

LeetCode 36. Valid Sudoku【九宮格判斷合法】

Determine if a 9x9 Sudoku board is valid. Only the filled cells need to be validated according to the

LeetCode 261. Graph Valid Tree判斷圖是否為樹

Given n nodes labeled from 0 to n - 1 and a list of undirected edges (each edge is a pair of nodes), write a function to check whethe

樹狀組的進階運用Stars 星星

p s 計算 right star http 復雜 一個 examine maps 英文原題 Problem Description Astronomers often examine star maps where stars are represented by poi

集合的模擬實現模板

delete bcd break 一行 其中 執行 eset 數據類型 turn 我們可以用一個數組來模擬集合,add運算用以實現集合元素的增加,delete運算用於實現集合元素的刪除,find運算用以實現集合元素的查找,但是目前集合元素類型未知,可以是int、char、d

Python爬蟲:新浪新聞詳情頁的據抓取

earch edit arm python爬蟲 print 詳情 contents enter uwa 上一篇文章《Python爬蟲:抓取新浪新聞數據》詳細解說了如何抓取新浪新聞詳情頁的相關數據,但代碼的構建不利於後續擴展,每次抓取新的詳情頁時都需要重新寫一遍,因此,我們需

day1作業二:多級菜單操作實現

數據庫 語句 會有 是否 臺灣 inpu return .com {} 作業二:多級菜單 (1)三級菜單 (2)可以次選擇進入各子菜單 (3)所需新知識點:列表、字典 要求:輸入back返回上一層,輸入quit退出整個程序 本示例的三級菜單是一個yaml文件格式,格式如下:

借助autoit操作上傳下載對話框

net htm 名稱 上傳 exe pla only cmd board 蟲師有一篇文章寫的不錯,鏈接如下:http://www.cnblogs.com/fnng/p/4188162.html 他的文章把upload.exe需要上傳的文件寫死了,下面的內容作為補充。 如

關於做一些隨機文章評論的紀錄

頭像 閱讀 文件 pat nbc 列表 lin for 文件內容 事情是這樣的,近期我們有這麽個需求,因為網站訪問量一般,所以他們要求發文章之後,要自動隨機時間(5分鐘內)、隨機用戶、給文章評論,點贊、增高閱讀數,來顯得有人氣。 我們的想法是,讓運營給我們一些準備好的用戶頭

LeetCode 1. Two Sum 之和

ret desc rip twosum 關鍵點 earch pub ++ num Given an array of integers, return indices of the two numbers such that they add up to a specif