我正在尝试解决Kth最大的元素问题,我不知道为什么出现了以下错误。”E: 6.16:未定义变量“QuickSelecte”(未定义变量) E: 27,19:未定义变量“QuickSelecte”(未定义变量) E: 30,19:未定义变量“QuickSelecte”(未定义变量)以下是我的代码。
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]
Python找不到
quickSelect
,因为它在全局命名空间中查找它,而不是在类内部查找。要解决这个问题,可以使用self.quickSelect(...)
而不是quickSelect(...)
调用函数。在相关问题 更多 >
编程相关推荐