我正在尝试解决specific leetcode problem,但是一个特定的if else块永远不会在我的代码中执行,所以我不知道为什么。这是代码。我是python的新手,我认为我在犯一个noob错误,但我只是弄清楚它是什么。
class Solution:
def findDuplicate(self, nums: List[int]) -> int:
left, right = 1, len(nums) - 1
while left < right :
mid = left + (right-left)//2
count = 0
print("l,r -->" + str(left) + ',' + str(right))
print("mid -->" + str(mid))
for k in nums :
if mid < k <= right: # this block never executes.
print(k)
count += 1
print("count -->" + str(count))
if count > right -mid:
left = mid + 1
else :
right = mid
return right
答案 0 :(得分:0)
一方面,这
if mid < k <= right: # this block never executes.
并没有按照自己的想法做-而是想要
if mid < k and k <= right: