前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >假如我是前端面试官 【算法篇 01】

假如我是前端面试官 【算法篇 01】

作者头像
李朝
发布于 2021-07-28 03:23:17
发布于 2021-07-28 03:23:17
19400
代码可运行
举报
文章被收录于专栏:魔法师的世界魔法师的世界
运行总次数:0
代码可运行

随机出题:记忆纸牌和数独

海贼王记忆纸牌游戏

生成数据部分:

代码语言:javascript
代码运行次数:0
运行
复制
/**
 * 返回值的区间 [a, b]
 * @param {number} start 
 * @param {number} end 
 */
const randomBetween = (start, end) => {
   
}

/**
 * 洗牌算法,打乱参数arr, 中所有元素
 * @param {array} arr 
 */
const shuffle = (arr) => {
    
}

/**
 * 
 * @param {number} piratesNumber 
 * 输出为数组类型,里面元素类型全部数字,值的范围 [0, 7], 并且里面元素为成对出现
 */
// 案例
// 输入 piratesNumber: 1   输出: [5, 5]
// 输入 piratesNumber: 3   输出: [6, 6, 2, 2, 1, 1]

/*
提示:
    a = [1, 3, 5]
    b = [...a, ...a]  
 */
const getPirates = (piratesNumber = 7) => {
    let a = []
    /**
     * 处理逻辑
     */
    return a
}

// 在上面的基础上 打乱输出的元素
const getPirates2 = (piratesNumber = 7) => {
    let a = []
    /**
     * 处理逻辑
     */
    return a
}

Dom 问题

怎样判断一个元素是否被点击 怎样记录一个元素点击的次数

数独游戏

代码语言:javascript
代码运行次数:0
运行
复制
// 深拷贝的实现
// 你所实现的有那些缺陷
const deepCopy = arr => {

}

// 已知数组 
map_data = [
    [6, 2, 9, 0, 7, 8, 3, 0, 0],
    [0, 0, 0, 0, 4, 3, 7, 0, 0],
    [0, 0, 0, 0, 5, 0, 0, 0, 1],
    [5, 0, 0, 0, 0, 0, 0, 7, 9],
    [0, 3, 0, 8, 9, 0, 0, 6, 0],
    [0, 1, 0, 4, 0, 7, 5, 3, 0],
    [8, 6, 0, 7, 2, 0, 0, 1, 0],
    [0, 9, 0, 3, 8, 6, 0, 5, 0],
    [2, 4, 3, 0, 0, 9, 6, 0, 0],
]
 

/**
 * 
 * @param {array} data 二维数组 
 * @param {array} position 元素的位置
 * @param {number} number  number 是不为零的
 */
// 案例
// inMapDataRow(map_data, [0, 0], 8)  输出 false
// inMapDataRow(map_data, [0, 0], 2)  输出 false
// inMapDataRow(map_data, [0, 0], 1)  输出 true
// 除了position所在的位置,当前行内如果有相同元素,那么输出为false, 反之 true
const inMapDataRow = (data, position, number) => {

}

/**
 * 
 * @param {array} data 二维数组 
 * @param {array} position 元素的位置
 * @param {number} number  number 是不为零的
 */
// 案例
// inMapDataCol(map_data, [0, 0], 8)  输出 false
// inMapDataCol(map_data, [0, 0], 2)  输出 false
// inMapDataCol(map_data, [0, 0], 1)  输出 true
// 除了position所在的位置,当前列内如果有相同元素,那么输出为false, 反之 true
const inMapDataCol = (data, position, number) => {

}

/**
 * 
 * @param {array} data 二维数组 
 * @param {array} position 元素的位置
 * @param {number} number  number 是不为零的
 */
// 案例
// inMapDataSquare(map_data, [0, 0], 8)  输出  true
// inMapDataSquare(map_data, [0, 0], 2)  输出 false
// inMapDataSquare(map_data, [0, 0], 1)  输出 true
// 宫: 数独盘面是个九宫,每一宫又分为九个小格。 在这八十一格中给出一定的已知数字和解题条件,利用逻辑和推理,在其他的空格上填入1-9的数字。 使1-9每个数字在每一行、每一列和每一宫中都只出现一次,所以又称“九宫格”。
// 除了position所在的位置,当前宫内如果有相同元素,那么输出为false, 反之 true
const inMapDataSquare = (data, position, number) => {

}

/**
 * 
 * @param {array} data 二维数组 
 * @param {array} position 元素的位置
 * @param {number} number  number 是不为零的
 */
// 案例
// isValidNumber(map_data, [0, 0], 8)  输出 false
// isValidNumber(map_data, [0, 0], 2)  输出 false
// isValidNumber(map_data, [0, 0], 1)  输出 true
// 除了position所在的位置,当前列、行、宫内如果有相同元素,那么输出为false, 反之 true
const isValidNumber = (data, position, number) => {

}


// 其他问题
// 怎样清除一个定时器
// 不清除会咋样

等待 更新

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-7-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
待更新
待更新
回复回复点赞举报
推荐阅读
回溯法解数独
数独,是源自18世纪瑞士的一种数学游戏,是一种运用纸、笔进行演算的逻辑游戏。玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫内的数字均含1-9,不重复。这是一种老少皆宜的游戏,想必很多读者都玩过吧。
孟君
2019/08/26
1.9K0
回溯法解数独
数据结构003:有效的数独
根据题目的规则,数独需要满足三个规则,针对规则一和二可知,我们在遍历每个元素的时候,需要判断该元素所在行和列中是否出现过,即可判断该元素是否满足规则一和二,因此我们可以针对每一行、每一列出现元素的次数作为校验标准,例如声明两个二维数组row[9][9] 和col[9][9] 分别代表行和列上面0-9 出现的次数。例如row[1][2] 表示第1行中,出现2的次数,col[4][3] 表示第4列出现3的次数(都是从第0行/列开始算的)。对于数独数组第i 行j 列上的数值n=board[i][j] ,首先将row[i][n] 上对应的值加一,再将col[j][n] 也加一,然后判断row[i][n] 和row[i][n] 的值是否大于1,大于1则表明i 行或者j 列数字n 出现的次数大于1,即不唯一。不满足规则一或者二。
艰默
2022/12/11
8040
数据结构003:有效的数独
有效的数独
请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。
狼啸风云
2023/10/23
2410
有效的数独
Dimple在左耳听风ARTS打卡(二十)
今天的内容干货满满,还烦请大家仔细观看。首先真是一个值得纪念的日子,历时5个月,终于把《Head First设计模式》这本书给二刷完成了。想起第一次看的时候,也是做了各种目标,竟然没能坚持到最后。
程序员小跃
2019/12/26
4510
Js算法与数据结构拾萃(6.5):回溯法解决数独问题
回顾N皇后问题的解决方案,并没有采用二维数组。但实际上思路依然和所谓“回溯法通用解决模板”是一致的。
一粒小麦
2020/03/06
7770
回溯算法解数独问题(java版)
    下图是一个数独题,也是号称世界上最难的数独。当然了,对于计算机程序来说,只要算法是对的,难不难就不知道了,反正计算机又不累。回溯算法基本上就是穷举,解这种数独类的问题逻辑比较简单。
天涯泪小武
2019/01/17
1.7K0
【暴力搜索】有效的数独
请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。
利刃大大
2025/02/05
950
【暴力搜索】有效的数独
leecode刷题(9)-- 有效的数独
判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。
希希里之海
2019/01/07
6060
c++ LeetCode(初级数组篇)十一道算法例题代码详解(一)
原文链接:https://www.cnblogs.com/DOMLX/p/10940636.html
徐飞机
2019/06/03
1.5K0
算法系列之回溯算法求解数独及所有可能解
有没有对数独感兴趣的朋友呢?数独作为一款经典的逻辑游戏,其目标是在一个9x9的方格中填入数字1至9,确保每一行、每一列以及每一个3x3的子网格中都包含这些数字且不重复。尽管数独的规则看似简单,但编写一个能够自动求解数独的程序却是一项颇具挑战性的任务。本文将深入探讨如何运用回溯算法来实现数独的自动求解。
修己xj
2025/03/14
1070
算法系列之回溯算法求解数独及所有可能解
【算法、递归回溯解决数独】
 https://blog.csdn.net/tianyaleixiaowu/article/details/50912924
梅花
2020/09/28
6110
【算法专题】回溯算法
回溯算法是⼀种经典的递归算法,通常用于解决组合问题、排列问题和搜索问题等。回溯算法的基本思想:从一个初始状态开始,按照一定的规则向前搜索,当搜索到某个状态无法前进时,回退到前一个状态,再按照其他的规则搜索。回溯算法在搜索过程中维护一个状态树,通过遍历状态树来实现对所有可能解的搜索。
YoungMLet
2024/03/01
2240
【算法专题】回溯算法
​LeetCode刷题实战36: 有效的数独
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !
程序员小猿
2021/01/20
3760
​LeetCode刷题实战36: 有效的数独
37. 解数独
数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 空白格用 ‘.’ 表示。
张伦聪zhangluncong
2022/10/26
3490
解数独(leetcode37)
数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 空白格用 '.' 表示。
Vincent-yuan
2021/04/09
6600
解数独(leetcode37)
☆打卡算法☆LeetCode 36、有效的数独 算法解析
链接:36. 有效的数独 - 力扣(LeetCode) (leetcode-cn.com)
恬静的小魔龙
2022/08/07
3810
☆打卡算法☆LeetCode 36、有效的数独  算法解析
使用Python编写程序求解数独游戏答案
问题描述:数独盘面是个九宫,每一宫又分为九个小格。在这八十一格中给出一定的已知数字和解题条件,利用逻辑和推理,在其他的空格上填入1-9的数字。使1-9每个数字在每一行、每一列和每一宫中都只出现一次,所以又称“九宫格”。 解题建议:遇到问题后,最好先手工推导和模拟一下,把思路理清楚,然后再动手写代码。 参考代码: import random def init(): # 初始状态,每个格内都是1-9之间的数字 grids = {(r, c):list(range(1,10))\ for r in r
Python小屋屋主
2018/04/16
1.1K0
使用Python编写程序求解数独游戏答案
LeetCode 图解 | 36.有效的数独
今天分享一个LeetCode题,题号是36,标题是:有效的数独,题目标签是散列表,散列表也称哈希表。此题解题思路用到了少量的空间换取时间的方法,降低时间上的消耗。
五分钟学算法
2020/02/20
7090
LeetCode 图解 | 36.有效的数独
数独生成算法
碰到一个需求,需要创建指定大小的数独,这个题挺有意思的,思考了几天,在这里记录一下思考过程及结果。
zhangheng
2021/03/30
1.4K0
算法:哈希表
哈希表:也叫做散列表。是根据关键字和值(Key-Value)直接进行访问的数据结构。也就是说,它通过关键字 key 和一个映射函数 Hash(key) 计算出对应的值 value,然后把键值对映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做哈希函数(散列函数),用于存放记录的数组叫做 哈希表(散列表)。哈希表的关键思想是使用哈希函数,将键 key 和值 value 映射到对应表的某个区块中。可以将算法思想分为两个部分:
用户3578099
2022/04/18
2.6K0
算法:哈希表
相关推荐
回溯法解数独
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档