字节跳动国际化电商三面20210824
双非本科艰难求职。base上海。
- 自我介绍,聊实习项目
- 大学学了什么课程
c和Java的区别是什么 - Java的内存泄漏是什么,threadlocal为什么内存泄漏
- 归并排序时间复杂度,空间复杂度,空间为什么是On,为什么稳定。
- 算法:90°旋转二维数组
- 智力题:两堆苹果,一堆七个,一堆十个,你先拿,谁拿完最后一个就输,问你是必赢,还是必输,还是不确定。
- 反问:归并排序和弱引用有待提高,项目思考的不够深入。我觉得这话说出来就快凉了。
- 等结果中,一天没出结果基本就凉了。
智力题解法
很多人都在私信问我智力题怎么算,我说一下思路。
这是nim博弈的简化版,可以了解一下。
解题思路可以用dp,二维数组,dp[i][j]表示第一堆苹果剩i个,第二堆苹果剩j个。
那么很显然dp[0][0]=true,也就是我们赢。
大家可以推导一下整个dp的变化规律,会发现两堆都大于2的时候,i=j的时候,先手必输。
举个例子来说,dp[5][5]=false,取决于dp[0][5],dp[1][5],等等,也就是我每次取n个,n>1时,对方的状态。
所以最开始两堆苹果不相等时,7,10为例,我先拿走三个,变成7,7。
另一个人无论怎么拿,我都保证两堆相等就可以。
更新
当天晚上七点,hr微信说我过了,现在等待意向书
更新20210827
催了一下hr,五分钟就收到意向书
全部评论
(11) 回帖