nums = [-1, 1,2,3] target = 3 class Solution: #定義全局變量,記錄右邊一半時的偏移量 global num_count num_count = 0 def search(self, nums, target): global num_count if int(len(nums)) == 0: return -1 elif target in nums: mid = int(len(nums) / 2) if nums[mid] == target: //最後返回時,需要加上右邊的偏移量 return mid+num_count elif nums[mid] > target: new_nums = nums[0:mid] return self.search(new_nums, target) elif nums[mid] < target: //左邊不需要加,右邊需要加上偏移量 num_count += mid new_nums = nums[mid:int(len(nums))] return self.search(new_nums, target) else: return -1 else: return -1 aa = Solution() bb = aa.search(nums, target) print(bb)