217. 存在重复元素
排序后判断相邻元素是否相等
执行用时:3 ms, 在所有 Java 提交中击败了99.74% 的用户 内存消耗:41.5 MB, 在所有 Java 提交中击败了88.07% 的用户
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;
}
}
使用 Set
执行用时:6 ms, 在所有 Java 提交中击败了54.71% 的用户 内存消耗:42.2 MB, 在所有 Java 提交中击败了63.84% 的用户
class Solution {
public boolean containsDuplicate(int[] nums) {
Set<Integer> set = new HashSet<>();
for (int num : nums) {
boolean add = set.add(num);
if (!add) {
return true;
}
}
return false;
}
}
使用 stream 流去重后长度是否与原数组长度相等
执行用时:6 ms, 在所有 Java 提交中击败了54.71% 的用户 内存消耗:45.9 MB, 在所有 Java 提交中击败了5.03% 的用户
class Solution {
public boolean containsDuplicate(int[] nums) {
return Arrays.stream(nums).distinct().count() != nums.length;
}
}