我的js算法爬坑之旅-存在重复元素

61 阅读1分钟

第六十七天:力扣217题,存在重复元素

地址:leetcode-cn.com/problems/co…

思路:index,哈希,排序去重,都可以。

function containsDuplicate(nums: number[]): boolean {
  for( let i:number = 0; i < nums.length; i++)
  {
    if (nums.lastIndexOf(nums[i]) !== i)
    {
      return true;
    }
  }
  return false;
};

执行用时:3748 ms, 在所有 TypeScript 提交中击败了5.43%的用户

内存消耗:41.5 MB, 在所有 TypeScript 提交中击败了94.35%的用户

function containsDuplicate(nums: number[]): boolean {
  nums.sort((a:number,b:number) => a - b);
  for(let i:number = 0; i < nums.length - 1; i++)
  {
    if(nums[i] === nums[i + 1])
    {
      return true;
    }
  }
  return false;
};

执行用时:100 ms, 在所有 TypeScript 提交中击败了53.49%的用户

内存消耗:41.6 MB, 在所有 TypeScript 提交中击败了94.35%的用户

function containsDuplicate(nums: number[]): boolean {
  let res = new Set();
  for(const a of nums)
  {
    if(res.has(a))
    {
      return true;
    }
    res.add(a);
  }
  return false;
};

执行用时:84 ms, 在所有 TypeScript 提交中击败了96.12%的用户

内存消耗:44.2 MB, 在所有 TypeScript 提交中击败了41.13%的用户