有趣的futu android面试体验
futu面试算是我面过的最特殊的了,大部分问题都是智力或者算法题,幸好我平常有刷算法的习惯,即使是项目相关的题,也是非常开放式的,几乎没看到八股
整体体验面试官还是比较专业的,其中的实现队列题和概率题我没有考虑到的点都和我进行了友好讨论,提醒了我,尤其是三面的那道概率题,挺有意思,也是多亏面试官提示
不算难,但是需要扎实的基础,大家可以作为参考
一面:
项目
recyclerview刷新设计,分页,复杂布局,网络流量 刷新包含整个刷新,单个item刷新, 局部刷新策略,diff对比后台刷新id
MVVM的viewModel与android中的ViewModel的区别
如何分享一个抽象列表框架(如recyclerview)技术给客户端同事,包含pc, ios等
如何做一个需求,输入框可以输入,输入字符串变化时都会有回调产生对应效果
算法/智力
-
数组实现队列,入队出队
增加扩容功能,
修改为循环队列
-
9个砝码,一个轻的,最少次数称出来?
称的次数与砝码数量有什么关系?
- 数组中和大于等于target的长度最小的连续子数组
二面:
-
多线程
static a = 0; thread1: a += 1; thread2: a += 1;
最后的结果区间
-
已知公司OA数据库有一个员工信息表,
包含员工ID,员工姓名,入职月份(如201801),和离职月份。
财务审核时发现 201803 到 201808 这6个月,
当时所有在职员工都少发了工资,
现在老板需要了解有多少人受影响需要获得补偿。
请写出查询语句。
-
a b c 轮流投掷一个硬币,直到正面出现即胜利,求c获胜的概率
-
在一个字符串中,找出不包含重复字符的最长子字符串的长度
aa => a => 1
abcdaf => bcdaf => 5
abcd => abcd => 4
abacad=>bac=>3
afbcdef => afbcde => 6
三面
- 编码:输入有字符串s1和s2,判断s2是否包括s1的排列 例如, 输入s1=abc,s2=abcd, 输出True; 输入s1=abc,s2=acbd, 输出True; 输入s1=abc,s2=ambnc, 输出False; (排列的解释:字符串abc,则abc的排列包括abc、acb、bac、bca、cab 和 cba)
先用了排序,复杂度
然后用数组,空间换时间
-
90% 返回0,10%返回1,如何包装此方法让返回0与1都是50%
-
做过的最难/有挑战性的项目