给定一个数组,判断是否有重复
1。 做循环 复杂度O(n^2)
public boolean containsDuplicate(int[] nums) { for (int i = 0; i < nums.length; ++i) { for (int j = 0; j < i; ++j) { if (nums[j] == nums[i]) return true; } } return false; }
2。使用java自带的排序 Arrays.sort(NameOfArray)
复杂度O(n log n)
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; }3。使用HashTable
复杂度O(n)
public boolean containsDuplicate(int[] nums) { Set<Integer> set = new HashSet<>(nums.length); for (int x: nums) { if (set.contains(x)) return true; set.add(x); } return false; }