leetcode 217 Contains Duplicate 数组中是不是有重复的数字

 我来答
匿名用户
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);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式