Ho 200 matrici di interi positivi ordinati (alcuni di loro hanno più di un milione di numeri). Devo trovare il primo numero esistente in ogni array. Che cosa suggeriresti?come AND un gran numero di matrici di numeri?
6
A
risposta
3
- Mantiene un indice su ogni matrice.
- Iniziare con il primo numero del primo array come riferimento.
- È il primo numero dell'array n-esimo inferiore al riferimento, aumenta il suo indice.
- È il primo numero dell'array n-esimo uguale al riferimento, aumentare n e procedere con - l'array successivo.
- È il primo numero dell'array n-th superiore al riferimento, utilizzare quel numero come riferimento e ricominciare.
- Se n == 201, il riferimento esiste in ogni matrice.
Edit: un esempio di codice:
while n < len(data):
item = data[n][indices[n]]
if item < reference:
indices[n] += 1
elif item == reference:
n += 1
elif item > reference:
reference = item
n = 0
print reference
1
È possibile eseguire un'unione k-way sugli array e controllare il primo elemento che appare k
volte.
Un'alternativa è la creazione di un histogram e ha scelto il primo elemento che appare ora k
nell'istogramma. Un istogramma in java può essere implementata facilmente da un Map<Element,Integer>
Entrambe le soluzioni sono O(kn)
dove k
è il numero di matrici e n
è la dimensione media di una matrice, quindi è sostanzialmente lineare nella dimensione dell'input.
Problemi correlati
- 1. Gestire un gran numero di file
- 2. Gran numero di connessioni simultanee in parsimonia
- 3. Accelerare un gran numero di aggiornamenti e inserimenti mysql
- 4. Haskell che esporta un gran numero di funzioni
- 5. gevent: lato negativo per generare un gran numero di greenlet?
- 6. Gran numero di tabelle e consumo di memoria Ibernazione
- 7. Gran numero di Session_Start con lo stesso ID di sessione
- 8. MATLAB: Combinazioni di un numero arbitrario di matrici di celle
- 9. Google BigTable vs BigQuery per memorizzare gran numero di eventi
- 10. Ricerca del prodotto di un numero variabile di matrici Ruby
- 11. come rilevare la regione di un gran numero di pixel bianchi usando opencv?
- 12. Conteggiare occorrenze di ogni cifra in numeri usando le matrici
- 13. Come posso generare un gran numero di codici promozionali per un'app iOS a pagamento?
- 14. Come faccio a fare un gran numero di richieste HTTPS simultanee in Clojure (/ Java)
- 15. Come si importa facilmente un gran numero di repository su bitbucket?
- 16. Trovare le radici di un gran numero di funzioni con una variabile
- 17. Qual è un buon modo per aggiungere un gran numero di piccoli oggetti galleggianti?
- 18. iPhone Socket non riesce dopo un gran numero di trasferimenti di dati
- 19. Conversione Int Float perde di precisione per un gran numero di Swift
- 20. elaborazione di un gran numero di voci del database con il paging rallenta con il tempo
- 21. R pacchetti di apprendimento automatico per gestire fattori con un gran numero di livelli
- 22. Significato di # in Numero di numeri letterali
- 23. Matrix moltiplicazione sequenze di matrici
- 24. Convertire un numero in un elenco di numeri interi
- 25. looping attraverso matrici di array
- 26. Permutazioni di lettere e numeri in un numero di telefono
- 27. Numero di bit nei numeri di Javascript
- 28. Ehcache/Hibernate e replica RMI con un gran numero di entità
- 29. Screen Scraping da una pagina Web con un gran numero di Javascript
- 30. ddply + riepilogare per ripetere la stessa funzione statistica su un gran numero di colonne
commento cancellato ------------------------------ --------------------- –
Il metodo 'Arrays.binarySearch()' –
Una descrizione più appropriata di "AND" può essere "intersezione". – Sjoerd