循环给出多个布尔值
loop giving multiple boolean values
嗨,我有这个问题
这是我的代码
for i in range(len(nums)):
for j in range(i+1, len(nums)):
if nums[i] == nums[j]:
if abs(i - j) <= k:
print(True)
我想添加功能或选项,如果
if abs(i - j) <= k:
print(True)
condition 没有任何值 true 它只是 return false once
我试过了,但是它 return 有多个布尔值
nums = [1,2,3,1]
k=3
for i in range(len(nums)):
for j in range(i+1, len(nums)):
if nums[i] == nums[j]:
if abs(i - j) <= k:
print(True)
else:
print(False)
让它成为一个函数并使用return跳出函数(两个循环)
def distictIndices(nums,k):
for i in range(len(nums)):
for j in range(i+1, len(nums)):
if nums[i] == nums[j] and abs(i - j) <= k:
reutrn True
return False
nums = [1,2,3,1]
k=3
print(distictIndices(nums,k))
一种更好的(线性)方法也证明了早期 return:
def func(nums, k):
lastseen = {}
for i, num in enumerate(nums):
if num in lastseen and i - lastseen[num] <= k:
return True # ends function
lastseen[num] = i
return False
>>> func([1,2,3,1], 3)
True
>>> func([1,2,3,4,1], 3)
False
或者,使用常量额外 space:
from collections import deque
def func(nums, k):
q = deque(maxlen=k)
for num in nums:
if num in q:
return True
q.append(num)
return False
嗨,我有这个问题
这是我的代码
for i in range(len(nums)):
for j in range(i+1, len(nums)):
if nums[i] == nums[j]:
if abs(i - j) <= k:
print(True)
我想添加功能或选项,如果
if abs(i - j) <= k:
print(True)
condition 没有任何值 true 它只是 return false once
我试过了,但是它 return 有多个布尔值
nums = [1,2,3,1]
k=3
for i in range(len(nums)):
for j in range(i+1, len(nums)):
if nums[i] == nums[j]:
if abs(i - j) <= k:
print(True)
else:
print(False)
让它成为一个函数并使用return跳出函数(两个循环)
def distictIndices(nums,k):
for i in range(len(nums)):
for j in range(i+1, len(nums)):
if nums[i] == nums[j] and abs(i - j) <= k:
reutrn True
return False
nums = [1,2,3,1]
k=3
print(distictIndices(nums,k))
一种更好的(线性)方法也证明了早期 return:
def func(nums, k):
lastseen = {}
for i, num in enumerate(nums):
if num in lastseen and i - lastseen[num] <= k:
return True # ends function
lastseen[num] = i
return False
>>> func([1,2,3,1], 3)
True
>>> func([1,2,3,4,1], 3)
False
或者,使用常量额外 space:
from collections import deque
def func(nums, k):
q = deque(maxlen=k)
for num in nums:
if num in q:
return True
q.append(num)
return False