首页 > 试题广场 >

一个长度为N的整形数组,数组中每个元素的取值范围是[0,n-

[问答题]

一个长度为N的整形数组,数组中每个元素的取值范围是[0,n-1],判断该数组否有重复的数,请说一下你的思路并手写代码

bool IsDuplicateNumber(int* arr, int n)
{
	set<int> s;
	for (int i = 0; i < n; i++)
	{
		s.insert(arr[i]);
		if (s.size() != (i + 1))//插入后判断。当没有重复时,set容器中的元素数应该等于插入的元素数
			return false;
	}
	return true;
}

发表于 2021-03-18 19:21:43 回复(0)
bool judge(int *array, int &length){
    int account[100] = { 0 };
    for (int i = 0; i < length; i++)
    {
        if (account[array[i]] == 0)
            account[array[i]] = 1;
        else
            return true;
    }

    return false;
}
发表于 2022-03-08 16:38:21 回复(0)
异或呢?
发表于 2019-07-09 22:03:31 回复(1)