最近面试题整理(真的是八分之八十都挂在算法),当场写算法真的是太心累了,虽然很简单,但是面试时脑子一片空白。。。。。。。:
1.数组求和,例如[1,2,3,4,5,6,7,5,8,9,4,1,4,5,5];算出和为6的值得下标,是真简单,之前还做过类似的,但是一写就忘了;
var twoSum = function(nums, target) {
let len = nums.length;
// 创建 MAP
const MAP = new Map();
// 由于第一个元素在它之前一定没有元素与之匹配,所以先存入哈希表
MAP.set(nums[0], 0);
for (let i = 1; i < len; i++) {
// 提取共用
let other = target - nums[i];
// 判断是否符合条件,返回对应的下标
if (MAP.get(other) !== undefined) return [MAP.get(other), i];
// 不符合的存入hash表
MAP.set(nums[i], i)
}
};
console.log(twoSum([11,5,7,1,4],9))
2.傻子坐飞机:100个人排队乘坐有100个座位的飞机,正常情况时每个都都会对号入坐,但是,第一个上飞机的是个傻子,他随机坐了一个位子,接下来的人上飞机时,如果自己座位被人坐了就会随机找个座位坐下,否则就坐自己坐位。问题:最后一个上飞机的人坐到自己座位的概率是多少?(这道题是第一次见到,满脑子想怎么用代码实现,面试官说是数学归纳法,我还在想用代码怎么实现。。。。。。。。。凉了)
这里是答案:答案
3.mysql灾难恢复
答案:备份mysql的日志转sql和备份data,和强制等级恢复,(在网上查了就找到mysql日志恢复。。。);
4.nginx或者Apache的访问日志查找特定pv
cat access.log|grep loginByMobile| awk '{print $1}'|sort |uniq -c|more
5.长连接连接不上去,服务没有挂掉是怎么回事?
查了好多文档,偏于答案的是ca证书错误。。。。应该不对,我是觉得应该不会出现这种问题的;
6.一个比较有意思的问题mysql中,自增主键,会丢失一部分是什么原因导致的;
1.删除当条数据
2.插入失败例如索引冲突等
3.auto_inc锁问题
主要考点是先自增+1还是先插入
7.暂无喽!!!!!!!!!