标题:microsoft的一道面试题
只看楼主
Alex_Lau
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-10-14
结帖率:0
 问题点数:0 回复次数:9 
microsoft的一道面试题
有2*n+1个数,其中有2n个数是成对的,只有一个是不同的,找出这个数。
例如:输入: 12 54 12 678 54 678 1000
输出:1000
1000是落单的
用简便方法,只几行代码
搜索更多相关主题的帖子: microsoft 面试 
2007-10-18 20:58
coding
Rank: 1
等 级:新手上路
威 望:1
帖 子:60
专家分:0
注 册:2007-9-30
得分:0 
我是这样想的,先把这(2*+1)个数按顺序排成一列
如 11 11 22 22 。。
然后从0 2 4 6 8。。位检索就是了
#include <iostream.h>

void main()
{
int a[]={a,a1,a2,a3,..,an};
int nend=?;
int i,j;
int flag=0;
for(i=0;i<nend-1;i++)
for(j=i+1;j<nend;j++)
if(a[i]>=a[j])
{
nmid=nterm[i];
nterm[i]=nterm[j];
nterm[j]=nmid;
}
nterm=0;
do
{
if (a[nterm]!=a[nterm+1])
{

flag=1;
break;
}

nterm+=2;
}while(nterm<nend-1;)

if (flag==1&&nterm==nend-1)
cout<<a[nterm]<<endl;
}

2007-10-19 08:43
coding
Rank: 1
等 级:新手上路
威 望:1
帖 子:60
专家分:0
注 册:2007-9-30
得分:0 

本人还想到一种方法,以前在奇瑞公司有过类似的题目,不过是用的苹果代替的,实例操题
把数拿出来一个,剩下的能否被2除

void main()
{
int a[]={...};
int nend=?;
int ns=0;
for(nterm=0;nterm<nend;nterm++)
ns+=a[nterm];
for(nterm=0;nterm<nend;nterm++)
if ((s-a[nterm])/2!=0)
{
cout<<a[nterm];
break;
}
}
不过这个程式,有点逻辑上的BUG,我想可能有更好的做好,因为题目说的是用几行代码


2007-10-19 09:00
踏魔狼
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:1322
专家分:33
注 册:2005-9-22
得分:0 
这是microsoft!
我看就是你的作业!

=×&D o I p R e E n C g T l X&×=
2007-10-19 19:21
cwande
Rank: 2
等 级:新手上路
威 望:3
帖 子:333
专家分:0
注 册:2006-8-18
得分:0 

用异或运算符,扫描一遍就ok了


汗,都懒得写代码了.......... cheat了一个威望,哈.....
2007-10-19 19:27
Alex_Lau
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-10-14
得分:0 
呵呵,不是作业,是听一个在微软工作的师兄说的,cwande说对了,代码如下:
#include<iostream.h>
void main()
{
int a=0,b=0,n=0,m=0;
cin>>n;
m=2*n+1;
while(m--){
cin>>b;
a=a^b;
}
cout<<a<<endl;
}

把时髦的技术挂在嘴边,不如把过时的技术记在心里
2007-10-19 21:45
Alex_Lau
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-10-14
得分:0 
coding的第二个做法也不错,但是时间复杂度可能要大一点

把时髦的技术挂在嘴边,不如把过时的技术记在心里
2007-10-19 21:48
coding
Rank: 1
等 级:新手上路
威 望:1
帖 子:60
专家分:0
注 册:2007-9-30
得分:0 
妙!!!!

2007-10-20 09:06
hahahan
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-4-10
得分:0 
学知识,只是知道怎么回事,自己用就不会了,唉!——继续努力&amp;……

没事儿你就多到这儿转转
2007-10-21 09:23
xiaocunkele
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-10-19
得分:0 
不解,我运行过不行啊!
2007-10-21 14:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-178867-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.115647 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved