
给定一个整数数组,判断是否存在重复元素。
如果任何值在数组中出现至少两次,函数返回 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; }
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于