leetCode的题目,争取养成每次写题做记录的习惯。
题目描述:
给你一个整数数组 nums
。如果任一值在数组中出现 至少两次 ,返回 true
;如果数组中每个元素互不相同,返回 false
。
个人想法分析:找出数组中是否有重复的元素,可以利用Set的特性:无序,不可重复的。将数组遍历加入到Set中,当Set的add()方法加入相同的元素会返回false。
class Solution {
public boolean containsDuplicate(int[] nums) {
Set<Integer> set = new HashSet<Integer>();
for(int a:nums){
if(!set.add(a)){
return true;
}
}
return false;
}
}
执行结果:
复杂度分析
-
时间复杂度:O(N)O(N),其中 NN 为数组的长度。
-
空间复杂度:O(N)O(N),其中 NN 为数组的长度。