微信后台开发岗社招经验分享之笔试
最近面试了微信,来分享一下面经。
问题比较多,而且很多面试题都是跟个人项目相关的,项目相关的问题借鉴意义不大,所以这里总结一些与项目无绝对关系的问题,欢迎围观~
笔试
1.数组交集,编写一个函数,输入两个数组,输出它们的交集。输出数组中不含重复的元素,元素排列顺序可随意。
2.二叉树的搜索,输入一个普通二叉树的根节点,实现一个调度器,调用调度器的next()方法,将返回二叉树中下一个最小的数;调用迭代器的hasNext()方法,将返回是否存在下一个数。二叉树节点是整数,无序。
3.三角形个数,输入一个非负整数的数组,如果将数组元素选作三角形的边长,编写一个函数,输出这个数组可构成的三角形数量。
4.数组切分问题,输入一个正序排列的整型数组,如果它可以被切分为1个或多个子序列,输出True,反之False。子序列需为连续的整型数组,并且长度至少为3。
例1:输入:[1,2,3,3,4,5]输出:True解释:可以切分为2个各自连续的子序列:1, 2, 33, 4, 5例2:输入:[1,2,3,3,4,4,5,5]输出:True解释:可以切分为2个各自连续的子序列:1, 2, 3, 4, 53, 4, 5例3:输入:[1,2,3,4,4,5]输出:False解释:无法切分出长度至少为3的子序列。
1. 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法.
2.求下面代码的输出
function test(a,b) { console.log(b) return { test:function(c){ return test(c,a); } };} var retA = test(0); retA.test(2); retA.test(4); retA.test(8);var retB = test(0).test(2).test(4).test(8);var retC = test('good').test('bad'); retC.test('good'); retC.test('bad');
#笔经##后端开发##腾讯#