Leetcode217. 存在重复元素

Every day a leetcode

题目来源:217. 存在重复元素

解法1:排序

先将数组排序,相同的值一定相邻,遍历一次数组,比较相邻的元素:

  1. 若相邻的元素相等在,则返回true
  2. 否则,返回false。

代码:

int cmpfunc (const void * a, const void * b)
{
   return ( *(int*)a - *(int*)b );
}
bool containsDuplicate(int* nums, int numsSize){
    qsort(nums,numsSize,sizeof(int),cmpfunc);
    for(int i=1;i<numsSize;i++)
    {
        if(nums[i] == nums[i-1])
        {
            return true;
        }
    }
    return false;
}

结果:
Leetcode217. 存在重复元素_第1张图片

解法2:hash

用hash表记录数组中的每一个元素,当hash[nums[i]]>1时,返回true。

若hash表中不存在大于1的数,返回false。

你可能感兴趣的:(Every,day,a,leetcode,排序算法,leetcode,算法)