題目:
給定一個整數(shù)數(shù)組,判斷是否存在重復(fù)元素。
Given an array of integers, find if the array contains any duplicates.
如果任何值在數(shù)組中出現(xiàn)至少兩次,函數(shù)返回 true。如果數(shù)組中每個元素都不相同,則返回 false。
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.
示例 1:
輸入: [1,2,3,1] 輸出: true
示例 2:
輸入: [1,2,3,4] 輸出: false
示例 3:
輸入: [1,1,1,3,3,4,3,2,4,2] 輸出: true
解題思路:
? 排序數(shù)組,連續(xù)兩個數(shù)相等則證明存在重復(fù)元素。
? 直接用哈希集合:新建一個哈希集合,逐個向集合內(nèi)添加元素,如果遇到元素未添加成功,則證明存在重復(fù)元素,返回 True ,反之返回 False。
代碼:
這里用的哈希集合解題
Java:
class Solution { public boolean containsDuplicate(int[] nums) { Set<Integer>
set = new LinkedHashSet<>(); for (int num : nums) { if (!set.add(num)) return
true; //加入集合未成功,證明集合內(nèi)已有一個相同元素,返回False } return false; } }
Python:
? Python中 set()
函數(shù)可以直接將數(shù)組轉(zhuǎn)化為哈希集合。直接比較轉(zhuǎn)化后的哈希集合長度與原數(shù)組長度是否相等,相等證明原數(shù)組無重復(fù)元素,不相等則證明原數(shù)組含有重復(fù)元素。
class Solution: def containsDuplicate(self, nums: List[int]) -> bool: return
len(nums) != len(set(nums)) #比較長度
歡迎關(guān)注微.信公.眾號:愛寫B(tài)ug
熱門工具 換一換