第K大元素

2024-09-27 04:27:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试解决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]

Tags: andself元素returnifdefstartend
1条回答
网友
1楼 · 发布于 2024-09-27 04:27:53

Python找不到quickSelect,因为它在全局命名空间中查找它,而不是在类内部查找。要解决这个问题,可以使用self.quickSelect(...)而不是quickSelect(...)调用函数。在

相关问题 更多 >

    热门问题