Welcome to Subscribe On Youtube
Question
Formatted question description: https://leetcode.ca/all/217.html
217. Contains Duplicate
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.
@tag-array
Algorithm
Use a hash table
, traverse the entire array, if the hash table exists, return false, if not, put it into the hash table.
Or, sort
the array first, and then compare whether two adjacent numbers are equal, the time complexity depends on the sorting method.
Code
Java
-
import java.util.Arrays; import java.util.HashSet; import java.util.Set; public class Contains_Duplicate { public class Solution_extraSpace { public boolean containsDuplicate(int[] nums) { Set<Integer> set = new HashSet<>(); for (int i : nums) { if (!set.add(i))// if there is same return true; } return false; } } public class Solution_extraOps { public boolean containsDuplicate(int[] nums) { Arrays.sort(nums); for (int i = 1; i < nums.length; ++i) { if (nums[i] == nums[i - 1]) return true; } return false; } } }
-
// OJ: https://leetcode.com/problems/contains-duplicate/ // Time: O(N) // Space: O(N) class Solution { public: bool containsDuplicate(vector<int>& A) { unordered_set<int> s(begin(A), end(A)); return s.size() != A.size(); } };
-
class Solution: def containsDuplicate(self, nums: List[int]) -> bool: return len(set(nums)) < len(nums) ############ class Solution(object): def containsDuplicate(self, nums): """ :type nums: List[int] :rtype: bool """ nums.sort() for i in range(0, len(nums) - 1): if nums[i] == nums[i + 1]: return True return False