给定一个整数数组,判断是否存在重复元素。
如果任何值在数组中出现至少两次,函数返回 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
解决方案:
//pass 利用set不能有重复元素
public static boolean containsDuplicate(int[] nums) {
if (nums.length < 2) {
return false;
}
Set set = new HashSet<>();
for (int i = 0; i < nums.length; i++) {
set.add(nums[i]);
}
if (set.size() == nums.length) {
return false;
} else {
return true;
}
}
//passed
public static boolean containsDuplicate3(int[] nums) {
if (nums.length < 2) {
return false;
}
Arrays.sort(nums);
for (int i = 1; i < nums.length; i++) {
if (nums[i] == nums[i - 1]) {
return true;
}
}
return false;
}
// //erro:超出时间限制
public static boolean containsDuplicate2(int[] nums) {
if (nums.length < 2) {
return false;
}
for (int i = 0; i < nums.length - 1; i++) {
for (int j = nums.length - 1; j > i; j--) {
if (nums[i] == nums[j]) {
return true;
}
}
}
return false;
}
//erro:超出时间限制
public static boolean containsDuplicate1(int[] nums) {
if (nums.length < 2) {
return false;
}
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums.length; j++) {
if (i == j) {
continue;
}
if (nums[i] == nums[j]) {
return true;
}
}
}
return false;
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于