LintCode 判斷數獨合法

2021-08-09 04:47:34 字數 829 閱讀 5197

請判定乙個數獨是否有效。該數獨可能只填充了部分數字,其中缺少的數字用 . 表示。

注意事項:乙個合法的數獨(僅部分填充)並不一定是可解的。我們僅需使填充的空格有效即可。

首先明確合法要求:

1. 每行數字不重複

2. 每列數字不重複

3. 每個九宮格內數字不重複

判斷每行數字不重複:使用9*9的布林型陣列row,初始化時元素全為false。遍歷輸入的陣列,給陣列row賦值,raw[i][j] = true, 其中 i 表示行數,j表示該行中出現的數字,即第i行出現過j,則row[i][j] = true。遍歷賦值的時候如果發現raw[i][j]已經為true,直接返回false(不合法)。

判斷列的方式同行。

判斷每個九宮格內數字不重複:方法與行類似,但是這時候的i表示的不是行數,而是第幾個九宮格(從左到右,從上到下的順序)。第幾個九宮格的計算方法可根據當前元素的位置計算得到。如第[i][j]個元素出現在從左到右,從上到下的第 (i/3)*3+j/3 個九宮格中。

public

class

solution }}

for(int i =0;i<9;i++) }}

for(int i =0;i<9;i++) }}

return

true;}}

感謝閱讀!

389 判斷數獨是否合法

5.5 很神奇的使用了map陣列,感覺自己的路子簡直是有點兒野。map陣列的定義方式為 hashmap map2 new hashmap 2 9 for int i 0 i 2 i 判斷數獨是不是合法,要判斷同一行,同一列,以及同乙個九宮之內是不是有相同的數。雖然ac了,但是提示我的編譯是有錯誤的。...

leetcode 數獨是否合法與解數獨

看到解數獨就想到了n皇后問題,關鍵點是如何將題目中的合法條件轉換為 題目 36.有效的數獨鏈結 思路 首先我先考慮的是如何,如何滿足題目中的三個條件。剛開始想到用unordered map後來發現其實可以用陣列來存 數字 1 9 在每一行只能出現一次。數字 1 9 在每一列只能出現一次。數字 1 9...

判斷數獨是否正確

想必大家都玩過數獨吧 我竟沒玩過.錯誤!的思想 1,每列中包含1 9 2,每行中包含1 9 後來才知道原來只滿足這兩個條件並不能滿足每乙個九宮格中包含1 9 正解!1,每列中包含1 9 2,每行中包含1 9 3.每個九宮格中包含1 9 include include include include ...