| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1211 人关注过本帖
标题:思科面试题(没看明白,看明白的大牛请讲解下)
只看楼主 加入收藏
飘在深圳
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2010-2-28
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
思科面试题(没看明白,看明白的大牛请讲解下)
数组a[N],存放了1至N-1个数,其中某个数重复一次。写一个函数,找出被重复的数字.时间复杂度必须为o(N)函数原型:
int do_dup(int a[],int N)
答:int do_dup(int a[],int N)    //未经调试
{
      int sun = 0;
      int sum2;
      for(int i=0;i<N;++i)
      {
        Sum+=a[i];
      }
      Sum2 = (1+N-1)*N/2;
      Return (sum-sum2);
}
搜索更多相关主题的帖子: 讲解 思科 面试 
2010-03-15 19:07
psv
Rank: 2
等 级:论坛游民
帖 子:21
专家分:54
注 册:2010-3-3
收藏
得分:5 
测试的结果是答案有错误~
2010-03-15 19:49
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:15 
存放了1至N-1个数是等差数列,等差数列的前N项的和的工式为:Sn = (a1+an)*n/2,即为sum2的值,它还少了一个数没有加,即为那个重复了的数,程序的第一个循环是求数组所有元素的和sum,sum-sum2即是所求的数
2010-03-15 21:23
飘在深圳
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2010-2-28
收藏
得分:0 
通过LS的回复,我也觉得要能求出答案,貌似只能是一个1~N-1的等差数列,但是上面的方法显然还是有问题的,假如把5付给N,就可以看出问题,所以就算前提条件成立,上面的程序也得改成 Sum2 = (1+N-1)*(N-1)/2才能求出答案。
呵呵,思科出这种题还真够无聊。
2010-03-16 11:46
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
回复 4楼 飘在深圳
现在不少招聘负责人都喜欢装*, 关键是你有没有那个资格去装!

我就是真命天子,顺我者生,逆我者死!
2010-03-16 12:22
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
回复 楼主 飘在深圳
数组中存的数值到底是不是等差数列?看你的题面上没有等差数列的字样.如果是任意 N 个数值,你的函数也能求出吗?
2010-03-16 12:29
快速回复:思科面试题(没看明白,看明白的大牛请讲解下)
数据加载中...
 
   



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

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