Chinaunix首页 | 论坛 | 博客
  • 博客访问: 82431
  • 博文数量: 17
  • 博客积分: 2000
  • 博客等级: 大尉
  • 技术积分: 290
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-17 21:47
文章分类

全部博文(17)

文章存档

2011年(1)

2008年(16)

我的朋友
最近访客

分类: C/C++

2008-03-04 20:45:41

求解:有一个数组,数组中的元素值是正整数,且均小于数组长度
其中有两个元素值是相等的
写一算法,要求时间复杂度和空间复杂度均为最简
找出两个元素的位置
 
设长度为n
于是可以放的数为1到n-1共n-1个数
而数组可容纳n个数,由题意"其中有两个元素值是相等的"
这n个数恰好为1到n-1中再加上一个1到n-1间的数
于是 数组中的所有数求和 - (1 + n - 1) * (n - 1) / 2  为所求
a[0]+a[1]+a[2]+...+a[n-1]-(1 + n - 1) * (n - 1) / 2 
阅读(619) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~