最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

有效的數(shù)獨(dú),困意十足(P1)

2022-04-27 00:41 作者:幽焰精靈  | 我要投稿

開一個(gè)新坑,隔三岔五記錄自己刷的編程題,出處我也會在最后以鏈接的形式附上。

事先說明,我一般都是使用C++來編寫的,可能偶爾也會用Java,Python或其他的就...算了...吧,我不太會。

今天看到一個(gè)很有意思的題目,題目如下:


LeedCode? 36. 有效的數(shù)組

請你判斷一個(gè) 9 x 9 的數(shù)獨(dú)是否有效。只需要 根據(jù)以下規(guī)則 ,驗(yàn)證已經(jīng)填入的數(shù)字是否有效即可。

數(shù)字 1 - 9 在每一行只能出現(xiàn)一次。

數(shù)字 1 - 9 在每一列只能出現(xiàn)一次。

數(shù)字 1 - 9 在每一個(gè)以粗實(shí)線分隔的 3 x 3 宮內(nèi)只能出現(xiàn)一次。(請參考示例圖)

?

注意:

一個(gè)有效的數(shù)獨(dú)(部分已被填充)不一定是可解的。

只需要根據(jù)以上規(guī)則,驗(yàn)證已經(jīng)填入的數(shù)字是否有效即可。

空白格用 '.' 表示。


相信很多人讀完題目后下意識以為是寫一個(gè)解數(shù)獨(dú)的(而我不是,嘿嘿),但是其實(shí)題目的意思只是判斷當(dāng)前給的數(shù)獨(dú)是不是符合規(guī)則的。

我舉個(gè)例子就懂了(例子也是官方的)

有效的數(shù)獨(dú)

這就是一個(gè)有效的數(shù)獨(dú),因?yàn)槊恳恍小⒚恳涣?、每一個(gè)大格(用粗線分隔開的一大格)都沒有重復(fù)的元素(元素范圍:1 - 9)。

而下面這個(gè)就不是有效的,因?yàn)榈谝涣械牡谝粋€(gè)元素 “8” 和第四個(gè)元素 “8” 就沖突了。(感覺我講了一堆廢話,別罵我QAQ)。

無效的數(shù)獨(dú)


嗯哼

那么題目分析(水)完了,接下來就來講講計(jì)算機(jī)處理的思路了。

(這題應(yīng)該沒有涉及到什么算法,沒錯(cuò)就是你想的暴力求解)

兩種思路:

  • 對于每一種規(guī)則,分別進(jìn)行循環(huán)查找和比對。展開來說就是對于每一行,循環(huán)遍歷每一個(gè)數(shù),判斷當(dāng)前行是否有重復(fù)的數(shù)字,對于每一列、每一大格都是如此。

  • 另一種方法采用空間換時(shí)間,實(shí)現(xiàn)開辟三個(gè) bool 型的二維數(shù)組 xxx[10][10] (其實(shí) 9 就可以,默認(rèn)值為 false ),用來存儲每行、每列、每個(gè)大格對應(yīng)元素 1 - 9 的信息。然后遍歷數(shù)獨(dú)數(shù)組的每一個(gè)點(diǎn),判斷行、列、大格三個(gè)數(shù)組中對應(yīng)的元素是否存在。如果存在,說明數(shù)獨(dú)錯(cuò)誤,直接結(jié)束循環(huán)并輸出;如果不存在,就把行、列、大格三個(gè)數(shù)組中對應(yīng)元素的位置更改為 true,然后繼續(xù)下一個(gè)元素的判斷。

方法一的時(shí)間復(fù)雜度很高,每一行、每一列、每一大格都需要判斷數(shù)字是否兩兩相等,因此我采用的是方法二。

最后附上代碼(C++):

總的來說這道題還是比較簡單的,只要注意數(shù)組處理時(shí)的下標(biāo)位置就行,嘿嘿這不去趕緊上LeedCode做一做(喂...喂?。?! 別跑啊,我真的沒有在打廣告?。?/span>,emmm下次要不研究個(gè)做數(shù)獨(dú)的代碼?

來源:力扣(LeetCode),鏈接:https://leetcode-cn.com/problems/valid-sudoku


有效的數(shù)獨(dú),困意十足(P1)的評論 (共 條)

分享到微博請遵守國家法律
巴塘县| 十堰市| 桐梓县| 丹江口市| 绍兴县| 宾阳县| 武山县| 武清区| 阳新县| 临潭县| 新宾| 邻水| 安泽县| 阜新市| 侯马市| 克什克腾旗| 文登市| 资溪县| 屏南县| 丹棱县| 宝丰县| 丹阳市| 临沭县| 青岛市| 徐州市| 苏州市| 静宁县| 灌阳县| 新干县| 东丰县| 左权县| 银川市| 临武县| 江安县| 芦溪县| 依兰县| 庆云县| 淳化县| 南岸区| 商水县| 扬州市|