题目
给定一个整数数组,判断是否存在重复元素。
如果任何值在数组中出现至少两次,函数应该返回 true。如果每个元素都不相同,则返回 false。
解析
在这道题里,我推荐大家使用两种方法。我的解题方式是能怎么简单就怎么简单,不追求到效率的极致,在力求不把问题复杂化
代码:
public class Solution {
public boolean containsDuplicate(int[] nums) {
Arrays.sort(nums);
for(int i = 0; i < nums.length-1; i++) {
if(nums[i] == nums[i+1]) {
return true;
}
}
return false;
}
}
该答案来自 XReformat 的CSDN 博客 ,全文地址请点击
这里如果数组元素是在不为负也不为0的条件下 ,还有以下解法:将原数组中的元素值当作新数组的下标,如果遇到新数组的某个下标对应的元素不为0说明已经在这个下标插入过元素了,说明就有重复
class Solution {
public boolean containsDuplicate(int[] nums) {
int length = nums.length;
int[] arr = new int[length];
for(int i=0;i<length;i++){
if(arr[nums[i]] == 0){
arr[nums[i]] = nums[i];
}else{
return false;
}
}
return true;
}
}