贼温柔的一个小哥哥,一面两个多小时,一个小时做题,剩下一个小时问了题目思路,问了项目问题,问了js的输出.
题目:
1. Given an array nums, write a function to move all 0's to the end of it while maintaining the relative order of the non-zero elements.
For example, given nums = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0].
Note: You must do this in-place without making a copy of the array. Minimize the total number of operations.
2. 实现一个函数countLongest(tree),输入一棵二叉树,返回二叉树中距离最长的两个叶子节点的距离
3. 在前端开发中,通常会把多个 js 文件合并成一个文件,以减少网络请求次数,达到优化加载速度的目的,但是当文件之间存在依赖关系时,对 js 合并的顺序,会有一定的要求,比如 A.js 依赖了 B.js,那打包后的文件,B.js 需要排在 A.js 的前面。实现一个函数`resolve(tree)`,根据 js 的依赖关系树 tree,输出合理的打包顺序的数组(结果可能不唯一,输出其中一种即可)。
var tree2 = { name: "page.js", require: [ { name: "A.js", require: [ { name: "B.js", require: [ { name: "C.js", }, ], }, ], }, { name: "D.js", require: [ { name: "C.js", }, { name: "E.js", }, ], }, ], }; resolve(tree2); // ['C.js', 'E.js', 'D.js', 'B.js', 'A.js', 'page.js']4. 给定一个整数数组 a,实现一个函数`countMax(a)`,计算出从 a 中选择出多个不相邻元素组成最大的和是多少。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
5. 做完之后就问思路以及能不能优化一下,怎么优化。
6. 之后问了项目难点,如何解决(所以小伙伴们一定要把项目弄熟了,然后难点以及怎么解决也都要能够解释清楚)
7. 然后给了三个图看输出
var name = "first"; (function foo() { var name = "second"; console.log(this.name); })(); console.log(this.name);
var name = "global name"; var a = { name: "name A", func: function () { console.log(this.name); }, }; a.func(); window.a.func(); var func = a.func; func(); func = window.a.func; func();
var foo = { n: 1 }; (function (foo) { var foo; console.log(foo.n); foo.n = 3; var foo = { n: 2 }; console.log(foo.n); })(foo); console.log(foo.n);8. 问了一下如何上传文件
9. drag, drop api怎么使用
。。。。可能还有一些不记得了
10. 最后就是反问,面试官小哥哥还给总结了一下,哪些地方需要加强,哪些地方还要再多了解,很温柔的小哥哥,不过这样一听觉得我应该是凉凉2333333
全部评论
(4) 回帖