腾讯前端特工解题报告

网站链接:腾讯前端攻略。本来早就有的了,但是自己一直很排斥任何有关做题闯关的,今天又不小心看到了于是试了一下发现非常有意思,考察前端的基础知识,很灵活,比发试卷那种做题方式有意思多了,还能巩固或提升自己的能力

第一关,抓包

提示要抓包,于是查看在chrome查看response header,提示说『请设置隐藏域的值』,于是查了下网页的html代码,发现有一个隐藏域

<input type="hidden" name="timestamp">

于是猜测是要设置timestamp的值,就用Javascript在Chrome控制台中试了一下,果然对了:)

document.getElementsByName('timestamp').value = new Date().getTime()

第二关,CSS绘图

考察用CSS绘制简单的椭圆、三角形。就是考察对borderborder-radius的理解以及会用css3中的旋转,没什么可说的,查看w3schools上的文档。不过需要注意的是题目中三角形指出了一定要绕某个点旋转,所以必须指定transform-origin

// 椭圆
border-radius: 50%;
// 三角形
border-color: transparent black;
-webkit-transform-origin: top right;
-webkit-transform: rotate(-60deg);

第三关,坦克大战

这个。。。涉及到游戏,真的是没有兴趣也压根不会,所以果断去网上找了一个代码,涉及到版权,就不贴出来了。。。


第四关,JS基础

第四题是最简单的一道,就是javascript的一些基本的使用方法,也就是语法,分三道题全是填空,下面<>表示要填的空

/* 1. 数组克隆(数组元素非引用类型) */
var clone = function(arr){
    return <>
};
// 答案:arr.slice()

/* 2. 去除字符串首尾空格 */
var trim = function(s){
    return <>
};
// 答案:s.trim()

/* 3. 将Nodelist对象转换为数组对象 */
var arrify = function(list){
    return <>
};
// 答案:Array.prototype.slice.call(list)

第五关,求最大值


这是最有意思的一个题,综合了DOM操作、算法方面的知识。用动态规划,由于是求最值,设r[i][j]为第0层到第i层的第j个节点的数字和的最大值(i和j均从0开始计数),data[i][j]为第i行j列的数字值,则

r[i][j] = max(r[i-1][j-1], r[i-1][j]) + data[i][j]  // i > 0, i > j > 0,
r[i][j] = r[i-1][0] + data[i][j]                    // i > 0, j = 0
r[i][j] = r[i-1][i-1] + data[i][j]                  // i > 0, j = i

然后为了输出路径,倒序遍历r数组,倒序输出节点,并在图中选中节点。为了方便,引入jquery,方便对DOM树的操作。时间空间复杂度均为O(N),N是节点数,如果不是因为要自动选中图中的节点,而选中节点是又必须是从第二层开始依次序逐层选中的话,空间复杂度可以是O(n),n为最后一层的节点数。以下是代码实现

// 引入jquery,以便使用jquery操作DOM。贴代码是要先贴这一段再贴其他的,以免jquery库还未加载完毕
var s = document.createElement('script');
s.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js";
document.body.appendChild(s);

var record = [[+$($('#box>div>span')[0]).text()]];
var $rows = $('#box>div');
// 行
for (var i = 1; i < $rows.length; i++) {
    var row = $rows[i]
    var $cols = $(row).children('span')
    record.push([])
    // 列
    for (var j = 0; j < $cols.length; j++) {
        var num = +$($cols[j]).text()
        switch (j) {
            case 0: record[i][j] = record[i-1][0] + num;break;
            case i: record[i][j] = record[i-1][i-1] + num;break;
            default: record[i][j] = Math.max(record[i-1][j-1], record[i-1][j]) + num;
        }
    }
}

// 找到产生最大值的路径中最深层次的节点的下标
var max = 0
for (var k = 1; k < record[i-1].length; k++) {
    if (record[i-1][k] > record[i-1][max]) {
        max = k
    }
}
var path = []
// 从第一层节点到当前层节点数字之和的最大值
var sum = record[i-1][max]

// 从倒数第二层开始往回遍历,倒序输出路径
for (var i = record.length-1; i--;) {
    var r = record[i]
    var a = max ? r[max-1] : -1
    var b = (max == i+1) ? -1 : r[max]
    var t = max
    // 最大值路径在当前层中的节点下标
    if (a > b) {
        max--;
    }
    // 实际存的是上一层的节点
    path.push([t, sum - r[max]])
    sum = r[max]
}
// 选中图中的节点
for (var i = 2; $rows.length; i++) {
    var node = path.pop()
    $($('#box').children('#row_' + i).children()[node[0]]).click()
    console.log('%d -> %d', i, node[1])
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,911评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,014评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,129评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,283评论 1 264
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,159评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,161评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,565评论 3 382
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,251评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,531评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,619评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,383评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,255评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,624评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,916评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,199评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,553评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,756评论 2 335

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,712评论 0 33
  • 见习女警(路小星)的失误,亲眼目睹了他的弟弟的死亡,路小星自己也双目失明。也许是失明刺激了其它感官的活跃...
    千玺的艳芬阅读 1,119评论 1 3
  • 2016猴年春节,如果有一天你突然发现支付宝响个不停,同时收到数十个好友申请,远方亲戚幼儿园同学小区物业大妈等等八...
    Marnots阅读 401评论 0 2
  • 今天是广西中小学教师公开招聘报名的第一天,再很久之前我就看了岗位计划表,内心很是纠结。 为了考试离男朋友近一点,我...
    爱吃鱼的小白羊阅读 132评论 4 3
  • 跳转自己 App 设置页 首先你的 App 得有设置,也就是申请过相册、录音等权限才可以 跳转系统设置页 所有可用...
    滴滴时光阅读 1,196评论 0 1