nums,target = input().split() []= input().split() class Solution: def search(self, nums: List[int], target: int) -> int: first,last = 0,len(nums) while first<last: #左闭右开,first不会等于last[first,last) mid_index = (first+last) // 2 if nums[mid_index]<target: first = mid_index+1 elif nums[mid_index]>target: last = mid_index #注意与第一种方法的区别,last为开区间 else: return mid_index return len(nums)+1
时间: 2024-02-14 09:35:46 浏览: 121
在这段代码中,List 和 []= input().split() 都没有指定变量名,因此无法在后续的代码中使用它们。同时,在列表推导式中也没有指定变量名,因此也无法在后续的代码中使用它。
需要将 List 和列表推导式中的变量名指定为一个合法的变量名,并将列表推导式的结果赋值给 nums,才能正常运行代码。修改后的代码如下:
nums, target = input().split()
num_list = input().split()
nums = [int(num) for num in num_list]
class Solution:
def search(self, nums: List[int], target: int) -> int:
first, last = 0, len(nums)
while first < last:
mid_index = (first + last) // 2
if nums[mid_index] < target:
first = mid_index + 1
elif nums[mid_index] > target:
last = mid_index
else:
return mid_index
return -1
# 创建 Solution 类的实例
s = Solution()
# 调用 search 方法,输出结果
print(s.search(nums, int(target)))
阅读全文