【问题标题】:Type Error in python recursive binary search problempython递归二进制搜索问题中的类型错误
【发布时间】:2021-12-15 09:48:31
【问题描述】:
class Solution:
    def search(self, nums: List[int], target: int) -> int:
        left, right = 0, len(nums) - 1
        
        while left <= right:
            curr_ind = (right+left)//2
            print(nums[curr_ind + 1:len(nums)])
            if nums[curr_ind] == target:
                return curr_ind
            elif nums[curr_ind] > target:
                return search(nums[left:curr_ind], target)
            elif nums[curr_ind] < target:
                return search(nums[curr_ind + 1:len(nums)], target)
            
        return -1

我在倒数第二行收到 Unhashable Type 'list' 错误。 我不认为我在这个问题中使用了字典,但我不确定它为什么会给我这个错误。

【问题讨论】:

  • 您对search 的两次调用应该是self.search

标签: python recursion search binary


【解决方案1】:

我认为你错误地使用了递归,试试这个:

class Solution:
    def search(self, nums: List[int], target: int) -> int:
        left, right = 0, len(nums) - 1
        
        while left <= right:
            curr_ind = (right+left)//2
            print(nums[curr_ind + 1:len(nums)])
            if nums[curr_ind] == target:
                return curr_ind
            elif nums[curr_ind] > target:
                right = curr_ind - 1
            elif nums[curr_ind] < target:
                left = curr_ind + 1
            
        return -1

【讨论】:

  • 这个解决方案不是递归的
猜你喜欢
  • 2022-08-02
  • 1970-01-01
  • 1970-01-01
  • 2021-03-30
  • 2020-01-15
  • 1970-01-01
  • 2013-12-24
  • 2017-05-10
  • 2021-11-17
相关资源
最近更新 更多