题目地址:https://leetcode.com/problems/contains-duplicate-iii/description/
思路:刚开始直接暴力,先是错误,再是超时
错误代码1:(这个是没有考虑num[i]-num[j]上溢的情况)
public class Solution {
public boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) {
for (int i=0; i<nums.length; i++) {
for (int j=i+1; j<=i+k && j<nums.length; j++) {
if (Math.abs(nums[i] - nums[j]) <= t) {
return true;
}
}
}
return false;
}
}
超时代码2:
public class Solution {
public boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) {
for (int i=0; i<nums.length; i++) {
for (int j=i+1; j<=i+k && j<nums.length; j++) {
long num = Math.abs((long)nums[i] - (long)nums[j]);
if (num <= t) {
return true;
}
}
}
return false;
}
}