C++ - 一个非递减数组,下标从0到n,元素的取值范围为从0到n的整数,判断其中是否有重复元素
2012-07-06 22:37
756 查看
#include <iostream>
#define NULL 0
using namespace std;
int hasDup(int a[], int n)
{
for(int i = 0; i <= n; ++i)
{
while(a[i] != i && a[i] != -1)
{
if(a[a[i]] == -1)
{
return 1;
}
a[i] = a[a[i]];
a[a[i]] = -1;
}
if(a[i] == i)
{
a[i] = -1;
}
}
return 0;
}
void main()
{
int a[10] = {0, 2, 3, 3, 3, 5, 6, 7, 8, 9};
int result = hasDup(a, 9);
if(result == 1)
{
cout << "The array does HAVE the duplicated nodes." << endl;
}
else
{
cout << "The array does NOT HAVE the duplicated nodes." << endl;
}
}
// Output:
/*
The array does HAVE the duplicated nodes.
*/
#define NULL 0
using namespace std;
int hasDup(int a[], int n)
{
for(int i = 0; i <= n; ++i)
{
while(a[i] != i && a[i] != -1)
{
if(a[a[i]] == -1)
{
return 1;
}
a[i] = a[a[i]];
a[a[i]] = -1;
}
if(a[i] == i)
{
a[i] = -1;
}
}
return 0;
}
void main()
{
int a[10] = {0, 2, 3, 3, 3, 5, 6, 7, 8, 9};
int result = hasDup(a, 9);
if(result == 1)
{
cout << "The array does HAVE the duplicated nodes." << endl;
}
else
{
cout << "The array does NOT HAVE the duplicated nodes." << endl;
}
}
// Output:
/*
The array does HAVE the duplicated nodes.
*/
相关文章推荐
- 一个数组,下标从0到n,元素为从0到n的整数。判断其中是否有重复元素
- 面试题:给定一个长度为N的数组,其中每个元素的取值范围都是1到N。判断数组中是否有重复的数字
- 一个数组,下标从0到n,元素为从0到n的整数。判断其中是否有重复元素
- 一个数组下标从0到n,元素为从0到n的整数,判断其中是否有重复元素。
- 给定一个长度为N的数组,其中每个元素的取值范围都是1到N。判断数组中是否有重复的数字。(原数组不必保留)
- 一个长度为N的整形数组,数组中每个元素的取值范围是[0,N-1],写一个算法判断数组中是否存在重复的数字
- 对于一个SIZE大小的数组,元素是[0,SIZE-1]区间内的整数,判断其中是否有重复元素
- 如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)
- 如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)
- 取值为[1,n-1] 含n 个元素的整数数组至少存在一个重复数,O(n) 时间内找出其中任意一个重复数
- 取值为[1,n-1]含n个元素的整数数组,至少存在一个重复数,即可能存在多个重复数,O(n)时间内找出其中任意一个重复数,不使用额外存储空间。
- 面试题精选(79):取值为【1,n-1】含n个元素的整数数组至少存在一个重复数,O(n)时间内找出其中任意一个重复数
- 给定一个整数数组,其中元素的取值范围为0到10000,求其中出现次数最多的数
- 给定一个整数数组,其中元素的取值范围为0到10000,求其中出现次数最多的数
- 如何判断一个整数数组中是否有重复元素
- 如何判断一个整数数组中是否有重复元素
- 笔试算法题(29):判断元素范围1到N的数组是否有重复数字 & 计算整数的7倍
- 12、一个整数数列,元素取值可能是0~65535中的任意一个数,相同数值不会重复出现。0是例外,可以反复出现。 请设计一个算法,当你从该数列中随意选取5个数值,判断这5个数值是否连续相邻。
- 如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)
- 如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)