最近公司部门被裁了,让我这个刚刚毕业一年不到的人情何以堪啊。硬着头皮出去面试吧!
在此记录一下今日头条面试中印象比较深刻的问题,问题顺序已打乱。
其实本来不是考查这个的,仅仅是考查bind的用法。后来题目做出来面试官又继续问如何实现bind。下面是参考MDN的polyfill写出来的代码:
有一个高频操作会让函数迅速执行很多次,需要按照下面的时间线图来实现一个节流函数。
节流函数示意图
图是word画的,微信截的图,凑合看吧...图中每一个断点都代码触发了一次函数,但是触发函数时只在奇数时执行,偶数时不执行,断点间的时间间隔为50ms。
根据题意需要的是一个节流函数。刚开始时我是这么实现的:
实现一个函数,给三个参数,data是整形数组,m和sum都是一个整数,从data中取出n个整数,使它们的和为sum,求出一种组合即可。
我的思路是穷举data中的n个key的组合,假设data有6(n)个元素,从中取出3(m)个数,那么它key的组合就有:[0,1,2]、[0,1,3]、[0,1,4]、[0,1,5]、[0,2,3]、[0,2,4]、[0,2,5]、...、[3,4,5]
列出它的所有组合就好办了,直接用这些key去data里面取数,如果找到答案就退出程序。
下面仅给出穷举组合的算法,为了简单,相关参数写死并忽略全局污染:
当然不止这些题目,我这里只是列出了一些我答得不好和根本没有答出来的题目(逃),面试的结果应该是黄了。今天回头一想其实都还是可以做出来的,只是平时练得太少,心态也有点问题。多多复习,希望接下来的面试顺利吧!