- 测试用例[1,2] 0 ,1 输出true,预期结果false;不是很理解啊,为什么错
- 官方解答觉得没必要双层循环啊(2叉树的那个看不懂)
- 代码如下(c#)
public class Solution
{
public bool ContainsNearbyAlmostDuplicate(int[] nums, int k, int t)
{
if ((nums == null || nums.Length <= 0) && (k != 0 || t != 0))
return false;
if (nums.Length == 1 && nums[0] == 0 && k == 0 && t == 0)
return false;
if (nums.Length < k)
return false;
int count = nums.Length;
for (int i = 0; i < count; i++)
{
if ((i + k) > count - 1)
break;
else
{
if (Math.Abs(nums[i] - nums[i + k]) <= t)
return true;
}
}
for (int i = count - 1; i >= 0; i--)
{
if (i - k < 0)
break;
else
{
if (Math.Abs(nums[i] - nums[i - k]) <= t)
return true;
}
}
return false;
}
}