我正在尝试解决Kth Largest Element问题。我不知道为什么会出现bug。 " E:6,16:未定义的变量' quickSelect' (未定义的变量) E:27,19:未定义的变量' quickSelect' (未定义的变量) E:30,19:未定义的变量' quickSelect' (未定义变量)"这是我的代码。
def kthLargestElement(self, k, A):
return quickSelect(A, 0, len(A) - 1, k)
def quickSelect(self, nums, start, end, k):
if start == end:
return nums[start]
i = start
j = end
pivot = (nums[start] + nums[end]) // 2
while i <= j:
while i <= j and nums[i] < pivot:
i += 1
while i <= j and nums[j] > pivot:
j -= 1
if i <=j:
nums[i], nums[j] = nums[j], nums[i]
i += 1
j -= 1
if start + k - 1 <= j:
return quickSelect(nums, start, j, k)
if start + k - 1 >= i:
return quickSelect(nums, i, end, k - (i - start))
return nums[j + 1]
答案 0 :(得分:0)
Python无法找到quickSelect
,因为它在全局命名空间中查找它而不是查看您的类。要解决此问题,您可以使用self.quickSelect(...)
代替quickSelect(...)
调用您的函数。