小米凉经(10.9)
从上午九点等到了接近12.30半吧,终于轮到我面试。面试持续一个多小时,主要就两个问题。
一开始自我介绍,你的项目,里面你认为比较重要的点。spring aop的原理。三次握手说一说。
第一个问题是:有n个硬币,n为偶数,上面有随机的数值,两个人只能从两端轮流取一个硬币。问:全部取完(我理解为每次取都保证这个人赢了),如何保证其中一个人必胜。
解决思路:一定要注意是偶数,将其下标标出来(0,1,2,.....,n-1),首先是分别将偶数位和奇数位的数值都加起来。找出大的一方,比如偶数位大,那么我就可以限制对方永远只拿奇数位的硬币。
第二个问题是:借助Iterator中的next()和hashNext()两个方法,实现自己的迭代器,要求有三个方法:next(),hashNext(),getCurrent()。next()主要是指针后移一位,返回的是指针前面个数值。getCurrent()返回的是指针指向的数字。hashNext()就是直接返回true or false;
如:5->1->2->10->null
若第一次调用getCurrent()返回5,此时再调用next()的话,返回5,再调用getCurrent()返回1;
若第一次调用next()返回5,再调用getCurrent()返回1.
解决思路:主要是要多一个临时变量和一个标记位,是细节。有点绕。我自己把自己给绕晕了。
太菜了太菜了。一面挂。
#小米##面经##秋招##Java工程师#