再记录-面试题-腾讯云
昨天的两轮面试:
虽然最终加班谈崩了 遇到的一个算法题还是挺有意思的
一个有10w数的数组n 其中某个数字m出现次数达到数组长度的一半以上 求该数字
我的第一个思路是用哈希表存储 value为访问次数
面试官说空间太大
第二个思路是排序取中间值
面试官说时间太长
我就。。。挺难的
最后面试完问了下他的思路 面试官讲 一遍遍历 额外空间为2 起始值为a=(n(0),0)a(0)初始化为数组第一个数字 遍历时如果下一个数字等于a(0) --> a(1)++ 否则 a(1)-- 当a(1)<0时将a(0)换成下一个数字
则 遍历结束 a(0)为m