220J. Contains Duplicate III
TLE method 这个题还确实有点难度。以后再写。
class Solution {
public boolean containsNearbyAlmostDuplicate(int[] nums, int indexDiff, int valueDiff) {
Set<Integer> window = new HashSet<>();
for (int i = 0; i < nums.length; i++) {
for (int vdiff = 0; vdiff <= valueDiff; vdiff++) {
if (window.contains(nums[i] - vdiff) || window.contains(nums[i] + vdiff)) {
return true;
}
}
if (window.size() >= indexDiff) {
window.remove(nums[i - indexDiff]);
}
window.add(nums[i]);
}
return false;
}
}
Last updated
Was this helpful?