给定一个整数数组和一个整数k,找出数组中是否有两个不同的指数i和j,使得nums[i]=nums[j],i和j之间的绝对差最多为k
例1: 输入:nums=[1,2,3,1],k=3 输出:真
例2: 输入:nums=[1,0,1,1],k=1 输出:真
例3: 输入:nums=[1,2,3,1,2,3],k=2 输出:假
我一直在看我的代码好10分钟,但仍然不明白出了什么问题。。。我的代码运行,但它返回True(例如1),False(例如2),True(例如3)。(对于示例1,它应该是True,对于示例2,它应该是True,对于示例3,它应该是False)
有人能帮我确定问题在我的代码中的位置吗?一个Python新手在这里,提前感谢您的帮助
def findDistinct(nums,k):
nums = sorted(nums) # sort first
for i in range(len(nums)):
for j in range(i+1,len(nums)):
if nums[i] == nums[j] and abs(j-i)<=k:
return True
else:
return False
你返回
False
太早了。仅仅因为您没有为您测试的第一个索引找到重复项,就意味着您不会为以后的索引找到重复项:您可以将其缩短为:
相关问题 更多 >
编程相关推荐