36、有效的數獨 | 算法(leetode,附思維導圖 + 全部解法)300題


零 標題:算法(leetode,附思維導圖 + 全部解法)300題之(36)有效的數獨

前言

1)碼農三少 ,一個致力於 編寫極簡、但齊全題解(算法) 的博主。

2)文末附贈 價值上百美刀 資料。

一 題目描述

題目描述
題目描述
題目描述

二 解法總覽(思維導圖)

image

三 全部解法

1 方案1

1)代碼:

// 方案1 “遍歷法”。
// 技巧:遍歷1次,看當前 行、列、宮(即 boxList 、共 9 個)是否有重復值。

// 思路:
// 1)狀態初始化
// 2)核心:遍歷整個 board ,不斷將 board[i][j] 存入相應的數組里 (rowList、columnList、boxList)
// 2.1)必須是非 '.' 才放入3個數組里
// 2.1.1)若 行、列、宮 中有重復值,則 直接返回 false
// 3)遍歷結束,返回結果 true 
var isValidSudoku = function(board) {
    // 1)狀態初始化
    const rowList = new Array(9).fill(0).map(() => new Array(9).fill(0));
    const columnList = new Array(9).fill(0).map(() => new Array(9).fill(0));
    const boxList = new Array(3).fill(0).map(() => new Array(3).fill(0).map(() => new Array(9).fill(0)));

    // 2)核心:遍歷整個 board ,不斷將 board[i][j] 存入相應的數組里 (rowList、columnList、boxList)
    for (let i = 0; i < 9; i++) {
        for (let j = 0; j < 9; j++) {
            const c = board[i][j];
            // 2.1)必須是非 '.' 才放入3個數組里
            if (c !== '.') {
                const index = c.charCodeAt() - '0'.charCodeAt() - 1;
                rowList[i][index]++;
                columnList[j][index]++;
                boxList[Math.floor(i / 3)][Math.floor(j / 3)][index]++;
                // 2.1.1)若 行、列、宮 中有重復值,則 直接返回 false
                if (rowList[i][index] > 1 || columnList[j][index] > 1 || boxList[Math.floor(i / 3)][Math.floor(j / 3)][index] > 1) {
                    return false;
                }
            }
        }
    }

    // 3)遍歷結束,返回結果 true 
    return true;
};

四 更多

1 算法通關 + 面試寶典

1)算法通關40講(極客 -外企大佬講的):
鏈接: https://pan.baidu.com/s/1C175QEmcAunjnCzYzoLBz 提取碼: hjna

2)動態規划專題(價值幾百美刀~):https://www.bilibili.com/video/BV1nt4y1Y7nz


3)前端面經:
3.1)https://www.nowcoder.com/tutorial/96
3.2)https://muyiy.cn/question
3.3)https://hub.fastgit.org/haizlin/fe-interview/blob/master/category/history.md

注:若失效請前往VX公眾號: 碼農三少 ,發送關鍵字: LeetCode 或 算法 ,即可獲取最新的鏈接~

image

2 刷題進度

1)LeetCode:307 / 2390 。

2)《劍指offer》:66 / 66 。

3)相關學習資料與筆記匯總: 
https://github.com/CYBYOB/algorithm-leetcode/tree/master/資料%26筆記 。

4)注:所有題目均有 2-5種 左右的解法,后續還將不斷更新題目 & 題解。
敬請期待~
也歡迎大家進群一起 學習、交流、刷題&拿高薪~

image

3 GitHub - LeetCode項目倉庫

1)本項目地址: 
https://github.com/CYBYOB/algorithm-leetcode 。
目標、願景:
讓每個人都能擁有一定的算法能力、以應對面試中(會舉一反三的同學還可以將其融入自己的肌肉和血液,甚至能夠賦能於公司的業務和技術)的算法。

本人每周仍在不斷的更新 —— 保證每周都有新的題目、題解方案刺激着您的神經 和 刷題欲望。
歡迎對算法感興趣的同學加入我們的社群。
QQ群: 933919972 ;
作者QQ: 1520112971 ;
作者VX: c13227839870(可拉您進群、一起學習與交流~) 。

image

image

4 作者標簽

1)“BAT里1名小小的偽全棧工程師,主攻前端,偶爾寫點后端”。

2)2019年的微信小程序應用開發賽 - 全國三等獎;
2019CODA比賽 - 前 17/211 強 且 榮獲“優秀團隊”稱號 等。

3)“半自媒體人”,
在校期間、個人公眾號(IT三少。新自媒體(公眾號)號: 碼農三少 )
在半年內實現了0到5.8K+的粉絲增長等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM