返回轨道
算法 · 2026-05-14 · 21 阅读

P207 数组中是否包含重复元素

算法 21 阅读

信号摘要

难度:Easy · 时长:06:15 · leetcode 217 · lintcode 1320

P207 数组中是否包含重复元素

未对外公开播放权限
点击查看说明

描述

这个题目说的是,给你一个整数数组,你要判断数组中是否包含重复元素。如果数组中包含重复元素就返回 true,否则返回 false。

比如说,给你的数组是:

1, 2, 4, 2

这个数组中有两个 2,包含重复元素,返回 true。

再比如说,给你的数组是:

4, 1, 2

在这个数组中,每个数字都只出现了一次,不存在重复元素,因此返回 false。

代码

public class AlgoCasts {

  // Time: O(n^2), Space: O(1)
  public boolean containsDuplicateBruteForce(int[] nums) {
    if (nums == null || nums.length == 0) return false;
    for (int i = 0; i < nums.length; ++i)
      for (int j = i+1; j < nums.length; ++j)
        if (nums[i] == nums[j])
          return true;
    return false;
  }

  // Time: O(n*log(n)), Space: O(1)
  public boolean containsDuplicateSort(int[] nums) {
    if (nums == null || nums.length == 0) return false;
    Arrays.sort(nums);
    for (int i = 1; i < nums.length; ++i)
      if (nums[i] == nums[i-1])
        return true;
    return false;
  }

  // Time: O(n), Space: O(n)
  public boolean containsDuplicateHashSet(int[] nums) {
    if (nums == null || nums.length == 0) return false;
    Set<Integer> set = new HashSet<>();
    for (int num: nums) {
      if (set.contains(num)) return true;
      set.add(num);
    }
    return false;
  }

}

📡 通讯频道