//下面开始才是运行流程
//先便利原二维数组,得到缓存row、col、box、cb,如果是’.‘就给个[’.']
let start = 0; //start优化开始跳过最开始的一串原始数字
let first = true; //用来判断是否经历过空单元格
for (let i = 0; i < N; i++) {
for (let j = 0; j < N; j++) {
let cur = board[i][j];
if (first) start = i * N + j;
if (cur !== D) {
if (!filter(i, j, cur)) return(‘不是有效数独’)
add(i, j, cur)
cb[i][j] = [cur];
} else {
first = false;
cb[i][j] = [D];
}
}
}
//深度递归函数,以index序号0-80为递归依据
//每个单元格根据fx函数拿到nums数组
const dfs = (index) => {
//根据序号拿到坐标值
let [x, y] = [(index / N) | 0, index % N | 0];
const nums = fx(x, y);
//nums返回的数组可能长度为0、1、或者多个,要么来源于初始,要么来源于cb
//如果是0说明已经没有选择了(题目中表示一定有唯一解,所以可以忽略)
//如果是1说明只能选择这个
//进入循环
for (let i = 0; i < nums.length; i++) {
//将这个数字加入缓存排除
add(x, y, nums[i]);
board[x][y] = nums[i];
//如果只有一个数字,到了终点,说明结束了
if (index === N * N - 1 && nums.length === 1) {
success = true;
return true;
}
//如果之后的递归都返回true
if (dfs(index + 1)) return true;
//如果不满足递归正确的条件,则说明现在为止的数字都是不对的
//恢复board的区域并弹出缓存
board[x][y] = cb[x][y][0];
pop(x, y);
}
return false;
};
dfs(start);
if (!success) return ‘对不起,解不出来~~~’
return board;
};
const ax=[
[“5”, “.”, “.”, “.”, “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”, “.”],
];
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
专业技能
一般来说,面试官会根据你的简历内容去提问,但是技术基础还有需要自己去准备分类,形成自己的知识体系的。简单列一下我自己遇到的一些题
- HTML+CSS
- JavaScript
- 前端框架
- 前端性能优化
- 前端监控
- 模块化+项目构建
- 代码管理
- 信息安全
- 网络协议
- 浏览器
- 算法与数据结构
- 团队管理
- 开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
最近得空把之前遇到的面试题做了一个整理,包括我本人自己去面试遇到的,还有其他人员去面试遇到的,还有网上刷到的,我都统一的整理了一下,希望对大家有用。
其中包含HTML、CSS、JavaScript、服务端与网络、Vue、浏览器等等
由于文章篇幅有限,仅展示部分内容
18166371)**
最近得空把之前遇到的面试题做了一个整理,包括我本人自己去面试遇到的,还有其他人员去面试遇到的,还有网上刷到的,我都统一的整理了一下,希望对大家有用。
其中包含HTML、CSS、JavaScript、服务端与网络、Vue、浏览器等等
由于文章篇幅有限,仅展示部分内容