今日问题:
给定一个整数数组,技术你如何判断是干货否存在重复元素。
如果任何值在数组中出现至少两次,何判函数返回 true。整数重复如果数组中每个元素都不相同,数组则返回 false。否存
示例 1:
输入: [1,元素2,3,1] 输出: true示例 2:
输入: [1,2,3,4] 输出: false示例 3:
输入: [1,1,1,3,3,4,3,2,4,2] 输出: true解题思路:
排序数组,连续两个数相等则证明存在重复元素。技术
直接用哈希集合:新建一个哈希集合,源码库干货逐个向集合内添加元素,何判如果遇到元素未添加成功,整数重复则证明存在重复元素,数组返回 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; //加入集合未成功,证明集合内已有一个相同元素,返回False } return false; } }Python:
Python中 set() 函数可以直接将数组转化为哈希集合。云服务器提供商直接比较转化后的哈希集合长度与原数组长度是否相等,相等证明原数组无重复元素,不相等则证明原数组含有重复元素。
class Solution: def containsDuplicate(self, nums: List[int]) -> bool: return len(nums) != len(set(nums)) #比较长度伙伴们有需要补充的可以留言!