0
点赞
收藏
分享

微信扫一扫

LeetCode Top Interview Questions 217. Contains Duplicate (Java版; Easy)


​​welcome to my blog​​

LeetCode Top Interview Questions 217. Contains Duplicate (Java版; Easy)

题目描述

Given an array of integers, find if the array contains any duplicates.

Your function should return true if any value appears at least twice in the array, and it should return false if every element is distinct.

Example 1:

Input: [1,2,3,1]
Output: true
Example 2:

Input: [1,2,3,4]
Output: false
Example 3:

Input: [1,1,1,3,3,4,3,2,4,2]
Output: true

第一次做; 先排序, 再检查是否有重复元素, 时间复杂度O(NlogN), 空间复杂度O(1)

/*
没法鸽巢, 因为不知道元素的取值范围, 无法为每个元素分配一个位置
使用set, 时间复杂度O(N), 空间复杂度O(N)
*/
class Solution {
public boolean containsDuplicate(int[] nums) {
if(nums==null||nums.length==0)
return false;
Arrays.sort(nums);
for(int i=0; i<nums.length-1; i++){
if(nums[i]==nums[i+1])
return true;
}
return false;
}
}

第一次做; 使用set, 时间复杂度O(N), 空间复杂度O(N)

/*
没法鸽巢, 因为不知道元素的取值范围, 无法为每个元素分配一个位置
使用set, 时间复杂度O(N), 空间复杂度O(N)
*/
class Solution {
public boolean containsDuplicate(int[] nums) {
if(nums==null||nums.length==0)
return false;
HashSet<Integer> set = new HashSet<>();
for(int a : nums){
if(set.contains(a))
return true;
set.add(a);
}
return false;
}
}


举报

相关推荐

0 条评论