#近期业务工作繁重,偷懒了一点点#
今天刷了一个leetcode题,正好发现了一点可以记录的,查漏补缺嘛,可以看我另一篇最近做题的题集分享……ps.《leetcode 练习集锦(持续更新)》
--有效的数独--
这题题目不难理解,所以先顺着题意,做了一遍,再后续优化
关键点在于
- 数字
1-9
在每一行只能出现一次。 - 数字
1-9
在每一列只能出现一次。 - 数字
1-9
在每一个以粗实线分隔的3x3
宫内只能出现一次
我将每种情况中数据再加工存数组里,涉及二维数组的创建,直接上来就->
new Array(9).fill([])
运行结果不对,我又捋了一遍思路,没看出端倪
遂只能用最普通的方法,在for循环中console.log看数据如何处理的,最后一看,怎么我每一行的操作影响的都是所有行的数据,也就是我出现了九行一模一样的数据,当然,敏感的人就会想到了每一行指向的应该是同一处,也就是我们常说的引用数据类型
解决方案
**粗暴简单小笨拙**
[[], [], [], [], [], [], [], [], []]
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,interesting~
**进化版**
let arr = [];
for (let i = 0; i < 9; i++) {
arr.push([]);
}
其实,也不高大上hhh
总结
不管黑猫白猫,抓到老鼠就是好猫
设计 代码简洁 很重要,但又不是处处要高端大气上档次