码迷,mamicode.com
首页 > 其他好文 > 详细

论xiaomi笔试

时间:2015-04-25 00:07:23      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:

 

总结:不知道笔试要摄像头,在基地的台式机就开始等待笔试了。开考才知道要摄像头,马上跑回宿舍拿笔记本,再回基地,浪费半小时多一点,人都疲惫了。开电脑开始做题,调试一直失败,超时,运行的虚拟机出错等各种问题,是101测试网站的问题,哎,第一次就给坑惨了。

 

 

 

实习生全国笔试,共3+4道题:

(1)给两个int数,返回其二进制形式的相对应的位置上有多少个不同的位。也就是最多32个位都不同。答案在0~32之间。

我的思路:先求两个数的异或结果,统计该结果中有几个1。

 

(2)给一个有N个元素的int型的数组,每个元素表示该天的股票价格。你有两次机会可以买入及卖出,每次只能买1股,且在买下一股之前保证手上无股票,问题是该股票走势能获得最高收益是多少?

我的思路:不可能在同一天买入卖出,但是可以在同一天卖出再买入。比如只提供了3天的走势,那么可以第一天买,第二天卖,第二天买,第三天卖,共两次买卖,收益是两次买卖的卖价分别减去买价后之和。其实就是在一个数组中找到4个数字,规则是a<b<=c<d,使得(b-a)+(d-c)的和最大,肯定是大于0的,不然还不如不买!所以最坏情况是不买。穷举是O(n^4)。肯定不会要你穷举。先扫一遍数组,将第i个位置的前面最小的股价记录下来,O(N^2)。再扫一遍,穷举b和d,记录最大的sum结果返回。复杂度O(n^2)。

技术分享
 1 for( i = n-1 to 1 )
 2 {
 3     for( j = i-1 to 0  )
 4     {
 5         sta[j][i]=从j到i-1的最小元素。
 6     }
 7 }
 8 
 9 for( i = 1 to n-1  )
10 {
11     for( j = i+1 to n-1 )
12     {
13         if sum>max then
14               max=sum;
15     }
16 }    
伪代码

 

(3)以临接矩阵的方式给一棵树,问什么两个节点之间的最小分割点什么的。完全不懂题意。题意讲的是git的版本以一棵树给出什么的,例子也只有1个,看不懂什么意思。就没有下手了。

 

 

(6)服务器附加题:关于小问题的设计和计算吧,剩下20s才看这题。忘了。

 

论xiaomi笔试

标签:

原文地址:http://www.cnblogs.com/xcw0754/p/4455052.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!