【问题标题】:Leetcode 219. My python solution not workingLeetcode 219. 我的 python 解决方案不起作用
【发布时间】:2021-09-23 16:17:58
【问题描述】:

问题是:给定一个整数数组 nums 和一个整数 k,如果数组中有两个不同的索引 i 和 j 使得 nums[i] == nums[j] 和 abs(i - j)

例 1: 输入:nums = [1,2,3,1], k = 3 输出:真

我的解决办法是

def containsNearbyDuplicate(nums ,k):
    i = 0
    for j in range(1,len(nums)):
        if nums[i] == nums[j]:
            if abs(i-j) <= k:
                return True
            return False
        i += 1
nums = [1,2,3,1,2,3]
k = 2
containsNearbyDuplicate(nums ,k)

这里有什么问题? 我正在使用滑动窗口方法。

【问题讨论】:

  • “不工作”并不能充分说明问题所在。 debugging 你有没有尝试缩小问题的原因?您需要执行基本诊断以包含在您的帖子中。至少,在错误点打印可疑值并将它们追溯到其来源显示中间结果与您期望的结果偏离的地方。请收下tour,阅读How to Askquestion checklist

标签: python-3.x sliding-window


【解决方案1】:
def containsNearbyDuplicate(nums ,k):
    if len(nums)==len(set(nums)):
        return False
    for i in range(len(nums)):
        for j in range(i+1,len(nums)):
            if nums[i] == nums[j] and abs(i-j)<=k:
                return True
    return False
nums = [1,2,3,1,2,3]
k = 2
print(containsNearbyDuplicate(nums ,k)) # it will return False

你正在使用 for 循环,所以它只会执行一次,之后它会 终止

【讨论】:

    猜你喜欢
    • 2015-06-19
    • 2021-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多