Contains Duplicate
来自 <https://leetcode.com/problems/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.
题目解读
给定一个整型数组,判断数组中是否含有重复的数。如果数组中存在元素至少出现两次,则返回true,否则如果数组中的每个元素都是不同的,则返回false。
解析:
解法一:首先将数组中的元素进行排序,然后判断数组中是否存在两个相邻的数组元素相同。如果存在,则返回true,否则返回false。
解法二:
使用set,因为set中的元素都是不相同的,所以逐个取出数组中的元素放入到set中,在放入set之前,先判断set中是否包含此元素,如果包含则返回true.否则将其加入到set中。直到数组中所有的元素全部添加至set中。返回false。
解法一代码:
public boolean containsDuplicate(int[] nums) {
if(null == nums)
return false;
Arrays.sort(nums);
for(int i=nums.length-1; i>0; i--)
if(nums[i] == nums[i-1]) {
return true;
}
return false;
}
解法一性能:

解法二代码:
public boolean containsDuplicate(int[] nums) {
if(null == nums)
return false;
Set<Integer> result = new HashSet<Integer>();
for(int i=0; i<nums.length; i++) {
if(result.contains(nums[i]))
return true;
else
result.add(nums[i]);
}
return false;
}
解法二性能:

本文介绍了两种方法来解决数组中是否存在重复元素的问题:一种是排序后比较相邻元素,另一种是利用Set数据结构来检查元素的唯一性。通过这两种方法,可以高效地判断数组中是否存在重复值。
83

被折叠的 条评论
为什么被折叠?



