数组数字重复查找算法C (菜鸟上路,牛人指点,谢谢!)

BLUE__OCEAN 2008-03-15 07:47:30
/****************************************************
problem:
数组a[N],存放了1至N-1个数,其中某个数重复一次。写一个函数,
找出被重复的数字.时间复杂度必须为o(N)函数原型:
int do_dup(int a[],int N)
*****************************************************/

//my code

#include <stdio.h>
#define MAX 100
//假设最大数组为100

int foo(int a[], int n);

int main(void)
{
int a[5]={1,3,2,3,4};

printf("%d\n",foo(a,5));

return 0;
}

int foo(int a[], int n)
{
int j=0,i=0;
int array[MAX];

for (; i<n; i++)
{
j = a[i];

if (array[j-1]!=1)
{
array[j-1]=1;
}
else
{
return j;
}
}
}


有更好的方法或者我的代码有所不妥的地方,望大家批评指教,谢谢!
...全文
50 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianjiao85 2008-03-16
  • 打赏
  • 举报
回复
那就需要对数组a中的值作限制了

69,372

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧