Leetcode brushing record 215. Le Kème plus grand élément du tableau

Insérez la description de l'image ici

Voici deux idées.
Premièrement, la méthode basée sur la fonction de partition. La
fonction de partition peut modifier l'ordre d'une liste, de
sorte qu'après le remplacement de la liste, l'état de la liste est
LIST = LIST1 + [A] +
LIST2. Tous les éléments de LIST1 ne sont pas S'il est supérieur à A, tous les éléments de LIST2 ne sont pas inférieurs à A.
Par conséquent, nous devons d'
abord trier tout élément de LIST (tel que le premier élément) comme A pour voir si A est le plus grand élément de LIST.
Si A est le mième plus grand, m = k, retourne A
Si A est le mième plus grand, m> k, il suffit d'exécuter la fonction de partition sur LIST2.
Si A est le mième plus grand, m <k, nous n'avons que LIST1 puis exécutez la fonction de partition

class Solution:
    def findKthLargest(self, nums: List[int], k: int) -> int:
        dijida,temp,dy,xy,index = self.partition(nums)#,index
        if dijida == k:
            return temp
        lastlen = 0
        while dijida != k:
            if dijida > k:
                dijida,temp,dy,xy,index = self.partition(dy)
                if index == 1:
                    return temp
            elif dijida < k:
                lastlen += len(dy)+1
                dijida,temp,dy,xy,index = self.partition(xy)
                dijida += lastlen
                if index == 1:
                    return temp       
        return temp
    def partition(self,inputlist):
        if len(inputlist) == 1:
            return 1,inputlist[0],[],[],1
        temp = inputlist[0]
        xiaoyulist = []
        dayulist = []
        length = len(inputlist)
        for i in range(length-1):
            if inputlist[i+1] > temp:
                dayulist.append(inputlist[i+1])
            else:
                xiaoyulist.append(inputlist[i+1])
        return len(dayulist) + 1,temp,dayulist,xiaoyulist,0


La deuxième méthode, basée sur le tas, à ajouter

Publié 43 articles originaux · loué 14 · 20 000+ vues

Je suppose que tu aimes

Origine blog.csdn.net/weixin_41545780/article/details/105470194
conseillé
Classement