为生存而奔跑

   :: 首页 :: 联系 :: 聚合  :: 管理
  271 Posts :: 0 Stories :: 58 Comments :: 0 Trackbacks

留言簿(5)

我参与的团队

搜索

  •  

积分与排名

  • 积分 - 323490
  • 排名 - 74

最新评论

阅读排行榜

评论排行榜

有一个数组长度为N,里面的N个数的范围是[1, N-1],因此必有数是重复出现的。求一个算法找出这个数,要求时间复杂度为O(n),空间复杂度为O(1)。
#include<iostream>
#include
<algorithm>
using namespace std;
int main()
{
 
int a[]={1,2,4,3,6,3,4};
 
int tmp,tmp2;
 tmp
=a[0];
 
while(1)
 
{
  
if(a[tmp]!=-1)
  
{
   tmp2
=a[tmp];
   a[tmp]
=-1;
   tmp
=tmp2;
  }

  
else break;
 }

 printf(
"%d\n",tmp);
}

posted on 2009-08-06 10:04 baby-fly 阅读(42) 评论(0)  编辑 收藏 引用 所属分类: Algorithm

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理