专栏首页魔法师的世界假如我是前端面试官 【算法篇 01】

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

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

海贼王记忆纸牌游戏

生成数据部分:

/**
 * 返回值的区间 [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 问题

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

数独游戏

// 深拷贝的实现
// 你所实现的有那些缺陷
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) => {

}


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

等待 更新

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 假如我是面试官,我会这样虐你

    4、你为什么要离开上家公司?你上家公司在xxx,我们公司在xxx,离这么远为什么要选择我们这里?

    zhisheng
  • 『假如我是面试官』RabbitMQ我会这样问!

    在消息队列选型时,我们调研了市场上比较常用ActiveMQ,RabbitMQ,RocketMQ,Kafka。

    Java旅途
  • 原创 | 如果我是推荐算法面试官,我会问哪些问题?

    不得不说这是一个很好的问题,一千个人眼里有一千个哈姆雷特,同样,一千个面试官里面也有一千个面试标准和面试风格。首先说明,本文的内容只代表我个人的观点,大家辩证吸...

    TechFlow-承志
  • 面试官问我JVM垃圾回收算法,还好我看了这篇

    程序计数器、虚拟机栈、本地方法栈都是线程私有的,会随着线程而生,随线程而灭; 栈中的栈帧随着方法的进入和退出有条不紊的执行着出栈和入栈操作. 每个栈帧中的本...

    JavaEdge
  • 面试Java后端却问我时间轮算法,面试官没想到我看过Dubbo源码!

    一种高效批量管理定时任务的调度模型。时间轮一般会实现成一个环形结构,类似一个时钟,分为很多槽,一个槽代表一个时间间隔,每个槽使用双向链表存储定时任务。指针周期性...

    JavaEdge
  • 作为前端,我是如何在Leetcode 算法比赛中进入前100的?

    最近看到晨曦在掘金的那篇爆文,脑海中也突然有了想写一篇关于 LeetCode 相关的文章。

    前端迷
  • 作为前端leader,为何我在公司力推ts?

    有粉丝在后台给我私信:土哥,现在还有必要学typescript吗?在小城市,怕学了用不到。。。

    闰土大叔
  • 日志收集详解之logstash解析日志格式(一)

    logstash就是用来处理数据的,通过建一个管道,将数据按照不同的阶段,进行处理,并最终输出的一个过程,以输入到elasticsearch为例,如下图:

    dogfei
  • 我是如何拿到硅谷Offer的:告诉你算法面试的秘密

    原视频地址:www.youtube.com/watch?v=ub1Zwz_nivU

    哲洛不闹
  • 从机械自动化专业到Java工程师转行之路

    秋招已经过半,突然想写篇文章总结下自己的 Java 转行之路和秋招提前批、暑期实习的面试经历及个人感悟。因为要写的东西比较多,拆分成三篇:

    乔戈里
  • 使用Spark进行数据统计并将结果转存至MSSQL

    在 使用Spark读取Hive中的数据 中,我们演示了如何使用python编写脚本,提交到spark,读取并输出了Hive中的数据。在实际应用中,在读取完数据后...

    张子阳
  • MySQL中DATETIME与TIMESTAMP

    真理永远都不过时,今天由于工作的事情涉及到了这里,印象中只记得DATETIME类型占用8字节,TIMESTAMP类型占用4字节,心想这么久没有更新的知识万一过时...

    江湖安得便相忘
  • MySQL中DATETIME与TIMESTAMP

    真理永远都不过时,今天由于工作的事情涉及到了这里,印象中只记得DATETIME类型占用8字节,TIMESTAMP类型占用4字节,心想这么久没有更新的知识万一过时...

    暮雨
  • *Android面试实战总结2

     接上一篇 往下写 http://blog.csdn.net/u011733020/article/details/45998861  ,   非常感谢在上...

    bear_fish
  • spring data操作ES简直不能再香

    Elasticsearch(以下简称ES)并不像mysql这么容易上手,很多java程序员会觉得ES的java客户端比较难以掌握,尽管ES 7.x官方推荐的hi...

    用户7634691
  • 二分查找算法如何运用?我和快手面试官进行了深入探讨…

    经常有读者问我,读了之前的爆文 二分查找框架详解 之后,二分查找的算法他写的很溜了,但仅仅局限于在数组中搜索元素,不知道底怎么在算法题里面运用二分查找技巧来优化...

    labuladong
  • 7 个好用的 TypeScript 新功能

    TypeScript 语言小组一直在以惊人的速度推出新功能。从最新的《 Javascript 语言状况调查》(https://2019.stateofjs.co...

    疯狂的技术宅
  • CDH+Kylin三部曲之三:Kylin官方demo

    Yarn的内存参数设置之后一定要重启Yarn使之生效,否则Kylin提交的任务是会由于资源限制而无法执行;

    程序员欣宸
  • 为什么我们公司强制弃坑FastJson了?主推Jackson~

    作者:咔咔侃技术 来自:toutiao.com/i6815906868183958027

    良月柒

扫码关注云+社区

领取腾讯云代金券