valid sudoku
問題簡介:確定9x9數獨格是否有效, 只需要根據以下規則驗證已填充的單元格:
1.每行必須包含數字1-9而不重複
2.每列必須包含數字1-9而不重複
3.網格的9個3x3子框中的每乙個必須包含數字1-9而不重複
注:1.數獨板(部分填充)可能有效,但不一定是可解決的
2.只需要根據上述規則驗證已填充的單元格
3.給定的板只包含數字1-9和字元』.』
4.給定的電路板尺寸始終為9x9
舉例:1:
輸入:[「5」,「3」,".",".",「7」,".",".",".","."],
[「6」,".",".",「1」,「9」,「5」,".",".","."],
[".",「9」,「8」,".",".",".",".",「6」,"."],
[「8」,".",".",".",「6」,".",".",".",「3」],
[「4」,".",".",「8」,".",「3」,".",".",「1」],
[「7」,".",".",".",「2」,".",".",".",「6」],
[".",「6」,".",".",".",".",「2」,「8」,"."],
[".",".",".",「4」,「1」,「9」,".",".",「5」],
[".",".",".",".",「8」,".",".",「7」,「9」]
輸出: true
2:input:
[「8」,「3」,".",".",「7」,".",".",".","."],
[「6」,".",".",「1」,「9」,「5」,".",".","."],
[".",「9」,「8」,".",".",".",".",「6」,"."],
[「8」,".",".",".",「6」,".",".",".",「3」],
[「4」,".",".",「8」,".",「3」,".",".",「1」],
[「7」,".",".",".",「2」,".",".",".",「6」],
[".",「6」,".",".",".",".",「2」,「8」,"."],
[".",".",".",「4」,「1」,「9」,".",".",「5」],
[".",".",".",".",「8」,".",".",「7」,「9」]
輸出: false
解釋: 左上角的3*3裡有兩個8所以答案為false
解法一:
通過set集合對每行每列的元素進行判斷,這裡的難點是在小的33九宮格裡,要注意小九宮格座標的計算,觀察:
觀察行號規律:
第 i=0 個九宮格:000111222; 第1個九宮格:000111222; 第2個九宮格:000111222;第3個九宮格:333444555; 第4個九宮格:333444555; 第5個九宮格:333444555;第6個九宮格:666777888; 第7個九宮格:666777888; 第8個九宮格:666777888;
可見對於每三個九宮格行號增3;即可表示為對3作商,因此第i個九宮格的第j個格點的行號加偏移量可表示為i/33+j/3
觀察列號規律:
第0個九宮格:012012012; 第1個九宮格:345345345; 第2個九宮格:678678678;第3個九宮格:012012012; 第4個九宮格:345345345; 第5個九宮格:678678678;第6個九宮格:012012012; 第7個九宮格:345345345; 第8個九宮格:678678678;
可見對於下個九宮格列號增3,迴圈週期為3;對於單個九宮格,每個格點行號增1,週期也為3。因此第i個九宮格的第j個格點的列號加偏移量可表示為i%3*3+j%3
小白刷題之路,請多指教— — 要麼大器晚成,要麼石沉大海
LeetCode第三十六題 Python實現
title leetcode no.36 categories tags 判斷乙個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。數字 1 9 在每一行只能出現一次。數字 1 9 在每一列只能出現一次。數字 1 9 在每乙個以粗實線分隔的 3x3 宮內只能出現一次。上圖...
第三十六章 神女
滕青山也看著那馬背上的紫袍男子。這人似乎對我有著一絲敵意?滕青山心中倒是不在乎。在先天金丹這一層次。滕青山今有信心應付任何乙個強。你是第五神將?一道清冷聲音響起。滕青山身側。一身色裘衣的李然而立。目光清冷看著那微胖男子。不知道第五神將。來我這有什麼事?滕青山聽了心存疑。神將是什級別高手?第五神將 俄...
第三十六象 己亥
讖 曰纖纖女子 赤手禦敵 不分禍福 燈光蔽日 頌 曰雙拳旋轉乾坤 海內無瑞不靖 母子不分先後 西望長安入覲 金聖嘆註解 此象疑一女子能定中原,建都長安。推背圖網解 解圖圖中有一宮裝女子提燈在前指引,一婦人騎馬隨後,地上有一人納頭拜倒,從卦圖上看,有人點燈引路,婦人騎馬,應該是要出行,旁邊有人跪拜,證...