- 先分别求出最大值和最小值
- 注意代码中的一次遍历的技巧
在利用最大值和最小值建立哈希表。可大幅减小哈希表所用的空间;
class Solution {
public boolean containsDuplicate(int[] nums) {
int max = nums[0];
int min = nums[0];
for (int num : nums) { //一次遍历找出最大值和最小值
if (max < num) {
max = num;
} else if (min > num) {
min = num;
}
}
boolean[] arr = new boolean[max - min + 1];
for (int num : nums) {
if (arr[num - min]) {
return true;
} else {
arr[num - min] = true;
}
}
return false;
}
}