36、有效的数独 | 算法(leetode,附思维导图 + 全部解法)300题
零 标题:算法(leetode,附思维导图 + 全部解法)300题之(36)有效的数独
前言
1)码农三少 ,一个致力于 编写极简、但齐全题解(算法) 的博主。
2)文末附赠 价值上百美刀 资料。
一 题目描述
二 解法总览(思维导图)
三 全部解法
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 或 算法 ,即可获取最新的链接~
2 刷题进度
1)LeetCode:307 / 2390 。
2)《剑指offer》:66 / 66 。
3)相关学习资料与笔记汇总:
https://github.com/CYBYOB/algorithm-leetcode/tree/master/资料%26笔记 。
4)注:所有题目均有 2-5种 左右的解法,后续还将不断更新题目 & 题解。
敬请期待~
也欢迎大家进群一起 学习、交流、刷题&拿高薪~
3 GitHub - LeetCode项目仓库
1)本项目地址:
https://github.com/CYBYOB/algorithm-leetcode 。
目标、愿景:
让每个人都能拥有一定的算法能力、以应对面试中(会举一反三的同学还可以将其融入自己的肌肉和血液,甚至能够赋能于公司的业务和技术)的算法。
本人每周仍在不断的更新 —— 保证每周都有新的题目、题解方案刺激着您的神经 和 刷题欲望。
欢迎对算法感兴趣的同学加入我们的社群。
QQ群: 933919972 ;
作者QQ: 1520112971 ;
作者VX: c13227839870(可拉您进群、一起学习与交流~) 。
4 作者标签
1)“BAT里1名小小的伪全栈工程师,主攻前端,偶尔写点后端”。
2)2019年的微信小程序应用开发赛 - 全国三等奖;
2019CODA比赛 - 前 17/211 强 且 荣获“优秀团队”称号 等。
3)“半自媒体人”,
在校期间、个人公众号(IT三少。新自媒体(公众号)号: 码农三少 )
在半年内实现了0到5.8K+的粉丝增长等。
36、有效的数独 | 算法(leetode,附思维导图 + 全部解法)300题的更多相关文章
- 32、最长有效括号 | 算法(leetode,附思维导图 + 全部解法)300题
零 标题:算法(leetode,附思维导图 + 全部解法)300题之(32)最长有效括号 一 题目描述 二 解法总览(思维导图) 三 全部解法 1 方案1 1)代码: // 方案1 "滑动窗 ...
- 31、下一个排列 | 算法(leetode,附思维导图 + 全部解法)300题
零 标题:算法(leetode,附思维导图 + 全部解法)300题之(31)下一个排列 一 题目描述 二 解法总览(思维导图) 三 全部解法 1 方案1 1)代码: // 方案1 "双指针法 ...
- 33、搜索旋转排序数组 | 算法(leetode,附思维导图 + 全部解法)300题
零 标题:算法(leetode,附思维导图 + 全部解法)300题之(33)搜索旋转排序数组 一 题目描述! 题目描述 二 解法总览(思维导图) 三 全部解法 1 方案1 1)代码: // 方案1 & ...
- 34、在排序数组中查找元素的第一个和最后一个位置 | 算法(leetode,附思维导图 + 全部解法)300题
零 标题:算法(leetode,附思维导图 + 全部解法)300题之(34)在排序数组中查找元素的第一个和最后一个位置 一 题目描述 二 解法总览(思维导图) 三 全部解法 1 方案1 1)代码: / ...
- 35、搜索插入位置 | 算法(leetode,附思维导图 + 全部解法)300题
零 标题:算法(leetode,附思维导图 + 全部解法)300题之(35)搜索插入位置 一 题目描述 二 解法总览(思维导图) 三 全部解法 1 方案1 1)代码: // 方案1 "无视要 ...
- 精心整理「服务器Linux C/C++」 成长路程(附思维导图)
前言 我不是名校毕业,更没有大厂的背景,我只是一个毕业不到 2 年的普普通通的程序员,在摸爬滚打的工作这段时间里,深知了有一个「完整的知识体系」是非常重要的.当事人非常后悔没有在大学期间知道这个道理- ...
- RabbitMQ面试题集锦(精选)(另附思维导图)
1.使用RabbitMQ有什么好处? 1.解耦,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦! 2.异步,将消息写入消息队列,非必要的业务逻辑以异步的 ...
- VIM基础知识整理(附思维导图)
这是当时初学VIM后做的一个思维导图,图片稍大,所以从freemind导出了html文本po在下面:图片在最下方,放大可清晰浏览. VIM 普通模式 普通编辑命令 功能:浏览,普通编辑 x:删除光标所 ...
- web前端开发初学者必看的学习路线(附思维导图)
很多同学想学习WEB前端开发,虽然互联网有很多的教程.网站.书籍,可是却又不知从何开始如何选取.看完网友高等游民白乌鸦无私分享的原标题为<写给同事的前端学习路线>这篇文章,相信你会有所收获 ...
随机推荐
- C++构造函数写法
笔记 class complex{ public: complex (double r = 0, double i = 0) : re(r), im(i) {} private: double re, ...
- myeclipse配置pydev插件
下载PyDev插件 myeclipse10最好配PyDev2.7的版本,比较简单, 解压之后,进入文件夹.发现里面只有两个文件夹,将这两个文件夹复制 到myeclipse的文件下面,myeclipse ...
- 蓝绿部署、滚动部署、金丝雀(Canary)发布、灰度发布、A/B测试
最近看到Canary发布,一时没有反应过来是什么,一查才发现就是鼎鼎有名的金丝雀发布,发现经常一起出现的还有灰度发布.蓝绿部署.滚动部署.A/B测试,故一起学习一下这几个概念. 1. 蓝绿部署 目的: ...
- R 语言实战-Part 5-1笔记
R 语言实战(第二版) part 5-1 技能拓展 ----------第19章 使用ggplot2进行高级绘图------------------------- #R的四种图形系统: #①base: ...
- dokuwiki使用随笔
1. 在dokuwiki上安装MataJax插件后: a. $....$:之间书写数学公式;如完全平方公式:$a^2+b^2+2ab$,该公式将与当前行文字处于同一行; b. $$ .... $$ 之 ...
- 解决CentOS7 docker容器映射端口只监听ipv6的问题
问题现象 docker容器起来以后,查看9100端口监听情况,如下图: $ ss -lntp State Recv-Q Send-Q Local Address:Port Peer Address:P ...
- 巩固javaweb的第二十七天
巩固内容 正则表达式: 5. 指定字符串的开始和结尾 正则表达式中字符串的开始和结束符如表 2.6 所示. 表 2.6 开 始 和 结 尾 字符 作 用 ^ 指定以某个字符串开始 $ 指定以某个字符串 ...
- 游戏案例|Service Mesh 在欢乐游戏的应用演变和实践
作者 陈智伟,腾讯 12 级后台专家工程师,现负责欢乐游戏工作室公共后台技术研发以及团队管理工作.在微服务分布式架构以及游戏后台运维研发有丰富的经验. 前言 欢乐游戏工作室后台是分布式微服务架构,目前 ...
- apostrophe
apostrophe 者,', 0x27, 十进制39,ASCII里的single quote (单引号) 也.one of the 'inverted commas'. 在书写上可以表示所有格.省略 ...
- Spark(八)【利用广播小表实现join避免Shuffle】
目录 使用场景 核心思路 代码演示 正常join 正常left join 广播:join 广播:left join 不适用场景 使用场景 大表join小表 只能广播小表 普通的join是会走shuff ...