序言
2019年9月中旬,决定从之前的公司离职。恰逢家里有些事情,我在十月上旬的末尾重新回到上海,并与中旬开始投递简历。感觉不同于以前,不需要怎么复习就能拿 Offer,我开始去面试的时候,大多时候面壁。在这期间,想想还是写点 blog, 记录下来这次特殊的求职经历,并以此共勉。
常见函数
斐波那函数
因兔子繁殖引入而又被称为”兔子数列”. 特征是从第三项开始, 每一项都是前两项之和。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| function fib(n) { if (n === 0) { return 0 } else if (n === 1) { return 1 } else { return fib(n - 1) + fib(n - 2) } }
function fib(n, ac1 = 1, ac2 = 1) { if (n <= 2) { return ac2 } return fib(n - 1, ac2, ac1 + ac2) }
|
知名公司及笔试题分析
笔试题其实对面试者来说,并不友好。实际开发时,开发者一般都有熟悉的ide,代码补全等工具进行辅助。当转移到了纸上,应聘者不仅需要牢记这些 api,留空白行的手感也完全不同。没有好好准备的话,不经浪费了大量的时间,而且还很容易被刷掉。因此,有换工作的同学,请务必提前3个月刷下题目,并练习下手写代码。
- 百度众测
百度旗下的平台。稍微有点坑,对算法要求比较高。吐槽下,在JD里添加下重点考察算法如何。
1.1 实现排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| function isArray(arr) { return Array.isArray(arr) }
function sort(arr) { if (!isArray(arr)){ return []; } if (arr.length < 2) { return []; } var length = arr.length; var temp = [arr[0]]; for (var i = 1; i < length; i++) { var tlen = temp.length; for(var j = 0; j < tlen; j++) { if(arr[i] <= temp[0]) { temp.unshift(arr[i]); break; } if (arr[i] >= temp[tlen - 1]) { temp.push(arr[i]); break; } if (arr[i] >= temp[j] && arr[i] <= temp[j+1]){ temp.splice(j+1, 0, arr[i]); break; } } } return temp; } var arr = [5,4,3,2,1,2,3,6]; sort(arr);
|
1.2 查找长字符中重复字符最多的字符
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| function filter(string){ var acc = []; var temp = string.split('').sort(); var length = string.length; var bcc = []; for (var i = 0; i < length; i++) { if (temp[i] !== bcc[0]) { acc.push(bcc); bcc = []; bcc.push(temp[i]); } else { bcc.push(temp[i]); } continue; } console.log(acc); var accLen = acc.length; var maxLen = 0; var maxInd = 0; for (var j = 0; j < accLen; j++) { if (acc[j].length > maxLen) { maxLen = acc[j].length; maxInd = j; } } return acc[maxInd]; } var str = 'asjfsjfjsifjilsjflsjf'; filter(str);
|