新闻cms静态网站模板/可以看任何网站的浏览器
存在重复元素
- 题目描述
- 题解
- 方法一(哈希表)
- 方法二(排序)
题目描述
给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。
题解
方法一(哈希表)
思路
对于数组中每个元素,我们将它插入到哈希表中。
如果插入一个元素时发现该元素已经存在于哈希表中,
则说明存在重复的元素。
代码
class Solution {public boolean containsDuplicate ( int [] nums ){Set < Integer > set = new HashSet < Integer >() ;for ( int x : nums ){if (!set.add (x)){return true ;}}return false ;}
}
方法二(排序)
对数字从小到大排序,数组的重复元素一定出现在相邻位置中。因此,我们可以扫描已排序的数组,每次判断相邻的两个元素是否相等,如果相等则说明存在重复的元素。
class Solution {public boolean containsDuplicate(int[] nums) {Arrays.sort(nums);int n = nums.length;for (int i = 0; i < n - 1; i++) {if (nums[i] == nums[i + 1]) {return true;}}return false;}
}