请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

BOBO老师,leetcode 220. 存在重复元素 III 求指教

  1. 测试用例[1,2] 0 ,1 输出true,预期结果false;不是很理解啊,为什么错
  2. 官方解答觉得没必要双层循环啊(2叉树的那个看不懂)
  3. 代码如下(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;
        }
    }

正在回答 回答被采纳积分+3

1回答

liuyubobobo 2020-01-09 14:04:03

抱歉,我手里没有 C# 编译器,我本身也不使用 C# 语言,无法帮你调试程序。


程序并不长,测试用例这么小,只是一个有两个元素的数组,在本机单步跟踪一下,一步一步运行,看看你的程序为什么会得到 true。观察自己的程序,在每一步,数据是如何变化的?为什么这么变?和自己以为的是否一致?如果不一致,自己哪里想错了?debug 不仅仅是程序员的基本功,更重要的是,进步就发生在这个过程中哦。


加油!:) 

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_山上山_0 #1
    bobo老师,感觉怎么越调试越不能理解题意啊;
    回复 有任何疑惑可以回复我~ 2020-01-09 16:29:16
  • 提问者 qq_山上山_0 #2
    总算看懂题目哒,晕S;感觉翻译的有点坑啊
    回复 有任何疑惑可以回复我~ 2020-01-09 16:33:51
  • liuyubobobo 回复 提问者 qq_山上山_0 #3
    嗯嗯,有的时候 leetcode 的中文翻译确实比较坑。如果时间允许的话,可以考虑直接看英文版。还是顺便练习了英语。Leetcode 的题目表达,大多数都是比较简单的。继续加油!:)
    回复 有任何疑惑可以回复我~ 2020-01-10 00:38:33
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信