BOBO老师,leetcode 220. 存在重复元素 III 求指教
来源:1-1 欢迎学习《玩转数据结构》
qq_山上山_0
2020-01-09
- 测试用例[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;
}
}
写回答
1回答
-
liuyubobobo
2020-01-09
抱歉,我手里没有 C# 编译器,我本身也不使用 C# 语言,无法帮你调试程序。
程序并不长,测试用例这么小,只是一个有两个元素的数组,在本机单步跟踪一下,一步一步运行,看看你的程序为什么会得到 true。观察自己的程序,在每一步,数据是如何变化的?为什么这么变?和自己以为的是否一致?如果不一致,自己哪里想错了?debug 不仅仅是程序员的基本功,更重要的是,进步就发生在这个过程中哦。
加油!:)
032020-01-10
相似问题