数据结构与算法之哈希表: LeetCode 217. 存在重复元素 (Ts版)

存在重复元素

  • https://leetcode.cn/problems/contains-duplicate/description/

描述

  • 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;
  • 如果数组中每个元素互不相同,返回 false

示例 1

输入:nums = [1,2,3,1]
输出:true

解释:元素 1 在下标 0 和 3 出现

示例 2

输入:nums = [1,2,3,4]
输出:false

解释:所有元素都不同

示例 3

输入:nums = [1,1,1,3,3,4,3,2,4,2]
输出:true

提示

  • 1 <= nums.length <= 1 0 5 10^5 105
  • - 1 0 9 10^9 109 <= nums[i] <= 1 0 9 10^9 109

Typescript 版算法实现


1 ) 方案1:排序

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

2 ) 方案2:哈希表

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

你可能感兴趣的:(Data,Structure,and,Algorithms,leetcode,算法)