论xiaomi笔试

总结:不知道笔试要摄像头,在基地的台式机就开始等待笔试了。开考才知道要摄像头,马上跑回宿舍拿笔记本,再回基地,浪费半小时多一点,人都疲惫了。开电脑开始做题,调试一直失败,超时,运行的虚拟机出错等各种问题,是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才看这题。忘了。

时间: 2024-10-10 01:10:25

论xiaomi笔试的相关文章

DP - tencent2016实习生笔试A

tencent2016实习生笔试A Problem's Link ---------------------------------------------------------------------------- Mean: 给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串.如何删除才能使得回文串最长呢?输出需要删除的字符个数. analyse: 对于这题来说,插入字符和删除字符使其成为回文串,答案是一样的. 首先求s的反串rs,然后对s和rs求最长公共子序列,要删除的字

算法学习 并查集(笔试题目:找同伙)

题目背景太长,记得不清楚,暂参考<啊哈算法>一书,根据笔试题目大意改编如下: 警察正要捉获某地区的犯罪团伙,由于强盗人数过大,想查清楚有几个团伙非常困难. 根据上级指示,需要首先尽快抓获强盗A所在的团伙,这需要掌握 1 所在团伙的人数.先有资料如下: 强盗1 和 强盗2 是同伙 强盗3 和 强盗4 是同伙 强盗2 和 强盗5 是同伙 强盗3 和 强盗2 是同伙 注意,强盗的同伙的同伙也是同伙,问  强盗1 的同伙(不包括1自己)有多少人? 该题形式化表示如下: 每个测试实例首先包括2个整数:N

2015腾讯笔试大题

今天做完腾讯的在线笔试,感觉自己弱爆了,选择题部分考得比较基础,但是考的面比较广,数据结构,计算机网络,算法常识,概率题,C,C++,都有.大题如下: 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code).请编写一个函数,使用递归方法生成N位的格雷码,并且保证这个函数的健壮性. 2. 有下图的题解,请用C/C++代码来列出满足下图0-100内的所有答案. 3. 如图所示,系统中有三个进程Producer,Transmitter和Consumer.

腾讯、网易有道和阿里的笔试分享及自我总结

声明:本人Android移动开发岗 腾讯:考的很杂 选择题(25题不定项):考的包括: 编译原理两题, 计算机网络一两题(私网地址), C++若干, IOS开发一两题, 还有二叉树两三题,先后序遍历,求深度 jvm也有一题, 概率论一两题, JavaScript一题, 还有C语言(包括指针数组,数组指针,指针函数之类的)也挺多的 更多的是看程序求输出. 大题: 1,10亿QQ号用Set和Vector两个容器来删除奇数号 2,猴子摘香蕉,一次可以摘一根或两根,求摘50根有几种摘法(斐波那契数列)

58同城2015校招笔试、一面、二面经历

10.18 宣讲 58宣讲时间真是安排的晚...19.30开始,我6.30就到了..整整放了1个小时不重复的视频.....我听完他们CSO对行业和公司的介绍就走了.感觉58可能是o2o的下一个爆发点.感觉蛮有前景的.宣讲会也是和小米的宣讲差不多,过道上都挤满了人这种.我个人还是比较些向往去58的.个人感觉对于O2O,58算是赶了个早集..把最脏最累的活给做了..反而是美团,大众点评这种抓住了热点...当然,未来的大趋势也是O2O,就看58能不能赶上这趟快车了. 10.19 笔试 昨天的唯品会和中

笔试算法题(09):查找指定和值的两个数 &amp; 构造BST镜像树

出题:输入一个已经升序排序的数组和一个数字:要求在数组中查找两个数,这两个数的和正好等于输入的那个数字,输出任意一对数字就可以,要求时间复杂度是O(n): 分析:对于升序排序的数组{-i-j-k-m--},只有可能是i+m=j+k(j和k可能是同一个数),所以可以从两边往中间收缩而忽视其他交叉相加的情况: 解题: 1 void FindSumFactor(int *array, int length, int sum) { 2 int left=0, right=length-1; 3 whil

笔试算法题(08):输出倒数第K个节点

出题:输入一个单向链表,要求输出链表中倒数第K个节点 分析:利用等差指针,指针A先行K步,然后指针B从链表头与A同步前进,当A到达链表尾时B指向的节点就是倒数第K个节点: 解题: 1 struct Node { 2 int v; 3 Node *next; 4 }; 5 Node* FindLastKth(Node *head, int k) { 6 if(head==NULL) { 7 printf("\nhead is NULL\n"); 8 exit(0); 9 } 10 Nod

笔试算法题(07):还原后序遍历数组 &amp; 半翻转英文句段

出题:输入一个整数数组,判断该数组是否符合一个二元查找树的后序遍历(给定整数数组,判定其是否满足某二元查找树的后序遍历): 分析:利用后序遍历对应到二元查找树的性质(序列最后一个元素必定是根节点,从左向右第一个比根节点大的元素开始直到根节点之前的所有元素必定在右子树,之前的所有元素必定在左子树): 解题: 1 bool PostOrderCheck(int *array, int i, int j) { 2 /** 3 * 如快速排序一样,解决小子文件 4 * */ 5 if(j-i+1 ==

C/C++笔试忍法帖04——C/C++语法特性篇

1.Heap与stack的差别 Heap是堆,stack是栈. Stack的空间由操作系统自动分配/释放,Heap上的空间手动分配/释放. Stack空间有限,Heap是很大的自由存储区 C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符. 程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行. 2.In C++, what does "explicit" mean? what does "protected&