azl397985856/leetcode

相关解题bug反馈

yg838457845 opened this issue · 1 comments

题目地址(33. 搜索旋转排序数组)
这里的python代码求解有点问题:
mid和left的数值相等,不能完全保证哪一边有序。
例如:[3, 3, 3, 3, 3, 3, 3, 1, 3] 和 [3, 1, 3, 3, 3, 3, 3, 3, 3]。
[3, 3, 3, 3, 3, 3, 3, 1, 3]这个作为输入,试用Python示范代码输出为-1,明显错误。
个人代码:

class solution(object):
    def __init__(self):
        pass
    def find_target(self, nums, target):
        start = 0
        end = len(nums) - 1
        while start <= end:
            mid = (start + end) // 2

            if target == nums[mid]:
                return mid

            if nums[mid] > nums[start]:
                if target >= nums[start] and target <= nums[mid]:
                    end = mid - 1
                else:
                    start = mid + 1
            elif nums[mid] < nums[start]:
                if target >= nums[mid] and target <= nums[end]:
                    start = mid + 1
                else:
                    end = mid - 1
            else:
                start += 1
        
        return -1

看下题目描述: 数组中的值 互不相同