摘要:上圖是一個(gè)部分填充的有效的數(shù)獨(dú)。數(shù)獨(dú)部分空格內(nèi)已填入了數(shù)字,空白格用表示。但由于位于左上角的宮內(nèi)有兩個(gè)存在因此這個(gè)數(shù)獨(dú)是無(wú)效的。說(shuō)明一個(gè)有效的數(shù)獨(dú)部分已被填充不一定是可解的。只需要根據(jù)以上規(guī)則,驗(yàn)證已經(jīng)填入的數(shù)字是否有效即可。
判斷一個(gè) 9x9的數(shù)獨(dú)是否有效。只需要根據(jù)以下規(guī)則,驗(yàn)證已經(jīng)填入的數(shù)字是否有效即可。
數(shù)字 1-9 在每一行只能出現(xiàn)一次。
數(shù)字 1-9 在每一列只能出現(xiàn)一次。
數(shù)字 1-9 在每一個(gè)以粗實(shí)線分隔的 3x3 宮內(nèi)只能出現(xiàn)一次。
上圖是一個(gè)部分填充的有效的數(shù)獨(dú)。
數(shù)獨(dú)部分空格內(nèi)已填入了數(shù)字,空白格用 "." 表示。
示例 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:
輸入:
[ ["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
解釋: 除了第一行的第一個(gè)數(shù)字從 5 改為 8 以外,空格內(nèi)其他數(shù)字均與 示例1 相同。
但由于位于左上角的` 3x3` 宮內(nèi)有兩個(gè) `8` 存在, 因此這個(gè)數(shù)獨(dú)是無(wú)效的。
說(shuō)明:
一個(gè)有效的數(shù)獨(dú)(部分已被填充)不一定是可解的。
只需要根據(jù)以上規(guī)則,驗(yàn)證已經(jīng)填入的數(shù)字是否有效即可。
給定數(shù)獨(dú)序列只包含數(shù)字 1-9 和字符 "." 。
給定數(shù)獨(dú)永遠(yuǎn)是 9x9 形式的。
答案參考:
/** * @param {character[][]} board * @return {boolean} */ var isValidSudoku = function(board) { // 檢查每一行 for (let arr of board) { let row = [] for (let c of arr) { if (c !== ".") row.push(c); } let set = new Set(row) if (set.size !== row.length) return false; } // 檢查每一列 for (let i = 0; i < 9; i++) { let col = [] board.map( arr => { if (arr[i] !== ".") col.push(arr[i]) }) let set = new Set(col) if (set.size !== col.length) return false; } // 檢查每個(gè)小方塊 for (let x = 0; x < 9; x += 3) { for (let y = 0; y < 9; y += 3) { let box = [] for (let a = x; a < 3 + x; a ++) { for (let b = y; b < 3 + y; b ++) { if (board[a][b] !== ".") box.push(board[a][b]) } } let set = new Set(box) if (set.size !== box.length) return false } } return true };
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/101781.html
摘要:題目描述有效的數(shù)獨(dú)判斷一個(gè)的數(shù)獨(dú)是否有效。上圖是一個(gè)部分填充的有效的數(shù)獨(dú)。數(shù)獨(dú)部分空格內(nèi)已填入了數(shù)字,空白格用表示。說(shuō)明一個(gè)有效的數(shù)獨(dú)部分已被填充不一定是可解的。只需要根據(jù)以上規(guī)則,驗(yàn)證已經(jīng)填入的數(shù)字是否有效即可。 題目描述 有效的數(shù)獨(dú)判斷一個(gè) 9x9 的數(shù)獨(dú)是否有效。只需要根據(jù)以下規(guī)則,驗(yàn)證已經(jīng)填入的數(shù)字是否有效即可。 數(shù)字 1-9 在每一行只能出現(xiàn)一次。數(shù)字 1-9 在每一列只能出...
摘要:如果重復(fù)則不合法,否則極為合法。在這里我們使用數(shù)組代替作為存儲(chǔ)行列和小正方形的值得數(shù)據(jù)結(jié)構(gòu)。我存儲(chǔ)這所有的行列小正方形的情況,并判斷當(dāng)前值是否重復(fù)。外循環(huán)則代表對(duì)下一行,下一列和下一個(gè)小正方形的遍歷。 題目要求 Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku boa...
摘要:要求我們判斷已經(jīng)填入的數(shù)字是否滿足數(shù)獨(dú)的規(guī)則。即滿足每一行每一列每一個(gè)粗線宮內(nèi)的數(shù)字均含,不重復(fù)。沒(méi)有數(shù)字的格子用字符表示。通過(guò)兩層循環(huán)可以方便的檢查每一行和每一列有沒(méi)有重復(fù)數(shù)字。對(duì)于每個(gè),作為縱坐標(biāo),作為橫坐標(biāo)。 題目詳情 Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules.The Sudo...
摘要:分布式的管理和當(dāng)我在談?wù)摷軜?gòu)時(shí)我在談啥狀態(tài)碼詳解無(wú)狀態(tài)協(xié)議和請(qǐng)求支持哪些方法分層協(xié)議棧有哪些數(shù)據(jù)結(jié)構(gòu)運(yùn)用場(chǎng)景說(shuō)說(shuō)你常用的命令為什么要有包裝類面向?qū)ο蟮奶卣魇巧妒巧队惺裁春锰幭到y(tǒng)設(shè)計(jì)工程在線診斷系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)索引背后的數(shù)據(jù)結(jié)構(gòu)及算法原理軟技能 HTTP 【HTTP】分布式session的管理 【HTTP】Cookie和Session 【HTTP】當(dāng)我在談?wù)揜estFul架構(gòu)時(shí)我在談啥?...
摘要:本文只是簡(jiǎn)單理解算法,并不會(huì)深入的討論。大部分來(lái)自數(shù)組部分。如果數(shù)組中每個(gè)元素都不相同,則返回。示例輸入輸出加給定一個(gè)由整數(shù)組成的非空數(shù)組所表示的非負(fù)整數(shù),在該數(shù)的基礎(chǔ)上加一。盡量減少操作次數(shù)。 算法(algorithm),在數(shù)學(xué)(算學(xué))和計(jì)算機(jī)科學(xué)之中,為任何良定義的具體計(jì)算步驟的一個(gè)序列,常用于計(jì)算、數(shù)據(jù)處理和自動(dòng)推理。精確而言,算法是一個(gè)表示為有限長(zhǎng)列表的有效方法。算法應(yīng)包含清晰...
閱讀 2326·2021-11-17 09:33
閱讀 851·2021-10-13 09:40
閱讀 581·2019-08-30 15:54
閱讀 788·2019-08-29 15:38
閱讀 2423·2019-08-28 18:15
閱讀 2481·2019-08-26 13:38
閱讀 1847·2019-08-26 13:36
閱讀 2136·2019-08-26 11:36