leetcode 217 Contains Duplicate 数组中是不是有重复的数字
1个回答
2016-07-16
展开全部
leetcode 217 Contains Duplicate 数组中是有重复的数字。
好几处错误,我就不一一写了,基本就是思路混乱,判断一个数组中元素重复值的基本思路就是一个一个取出值,并与剩余元素比较,一旦想等就返回真,已经比较过的元素不需要重复比较,然后你看看我的代码体会下。
//接口中增加一个索引,目标元素索引,默认从头开始扫描
bool containsDuplicate(int* nums, int numsSize,int index=0)
{
//不要使用==1来判断,如果数组长度为0呢?
//另外要在循环处理前先预判,不要在循环体内判断,否则浪费CPU时间
if(numsSize<2)return false;
//检查索引(目标元素)是否为最后一个元素,是则任务结束,返回false
if(index==(numsSize-1))return false;
//从目标元素下一个元素开始遍历
for(int i=index+1;i<numsSize;i++)
{
//判断目标元素是否与i索引所指的元素相等,相等则返回true
if (nums[index]==nums[i])return true;
}
//扫描完所有元素后进行递归,将index递增,切换目标元素进一步检查
return containsDuplicate(nums,numsSize,index+1);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询