Dato l'enorme elenco di sottoinsiemi, alla ricezione di un set di super-migliori trova il set secondario migliore

-2

Finder dato: Elenco di mappa, chiave: String, Val: String.

Alla ricezione di una super mappa: una mappa che è un super set di una o più mappe in un finder, trova la mappa dall'elenco dei finder che contiene gli elementi massimi della super mappa.

Ad esempio

Map { Name = Adam, Qualification = Engg, Job = Manager , Country =  US, City = Seattle}

elenco di mappe secondarie:

   List [ submap1 {Name = Adam, Job = Manager }, 
      submap2 {Name = Adam, Country = Us, city - Seattle}
      submap3 {Name = Adam, Country = Us, city - Seattle, Job = 
        manager, Nickname = bobby} ] , size = 10000+

Il risultato dovrebbe essere sottomesso2. C'è un modo per utilizzare Tries / BST per pre-elaborare l'elenco dei sottoinsiemi per ricerche più veloci. Dato che ho un elenco di sottoinsiemi in fase di compilazione e alla ricezione di alcuni set di uper ho bisogno di trovare la migliore sotto mappa. Qualsiasi suggerimento sarebbe di grande aiuto.

    
posta sidss 27.10.2016 - 09:57
fonte

1 risposta

1

La soluzione più semplice è scorrere l'elenco dei submap. Per ogni submap contate il numero di partite. Mantieni il submab con il più alto numero di corrispondenze.

Non è necessario utilizzare strutture di dati di fantasia come i tentativi, a meno che non sia effettivamente necessario. (Ad es. Hai problemi di prestazioni specifici.)

    
risposta data 29.10.2016 - 12:35
fonte

Leggi altre domande sui tag