如果条件从不执行,为什么这样具体? [如果中间<k <=正确:]

时间:2019-09-11 20:29:15

标签: python-3.x binary-search

我正在尝试解决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

1 个答案:

答案 0 :(得分:0)

一方面,这

if mid < k <= right: # this block never executes. 

并没有按照自己的想法做-而是想要

if mid < k and k <= right: