题解 | #二分查找-II# Python 想问一个问题
二分查找-II
http://www.nowcoder.com/practice/4f470d1d3b734f8aaf2afb014185b395
class Solution: def search(self , nums , target ): # write code here begin = 0 end = len(nums) - 1 while begin <= end: if target == nums[(begin + end)//2]: index = (begin + end)//2 # while target == nums[index -1] and index > 0: while index > 0 and target == nums[index -1]: index -= 1 return index elif target > nums[(begin + end)//2]: begin = (begin + end)//2 + 1 else: end = (begin + end)//2 - 1 return -1
假设用例是[1,1,1],1
第10行代码index = 1,进入循环,依旧满足target = nums[0],此时经过第11行index = 0,不再满足index>0.
但是用第9行测试不应该是在验证target == nums[-1],此时不应该报out of range的错误吗,但是没有,想问下是为什么?
求大佬解答,谢谢.