Tengo 200 matrices de enteros positivos clasificados (algunos de ellos tienen más de un millón de números). Necesito encontrar el primer número que existe en cada matriz. ¿Qué sugieres?cómo Y una gran cantidad de matrices de números?
6
A
Respuesta
3
- Mantenga un índice en cada matriz.
- Comience con el primer número del primer conjunto como referencia.
- Es el primer número de la matriz n-ésima más baja que la referencia, aumente su índice.
- Es el primer número de la n-ésima matriz igual a la referencia, aumente ny continúe con - la siguiente matriz.
- Es el primer número de la matriz n-ésima más alta que la referencia, use ese número como referencia y comience nuevamente.
- Si n == 201, su referencia existe en todas las matrices.
Editar: un ejemplo de código:
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
Puede hacer una combinación de k-way en las matrices y buscar el primer elemento que aparece k
veces.
Una alternativa es crear un histogram, y eligió el primer elemento que aparece k
en el histograma. Un histograma en Java puede ser implementado fácilmente por un Map<Element,Integer>
Ambas soluciones son O(kn)
donde k
es el número de matrices y n
es el tamaño promedio de una matriz, por lo que básicamente es lineal en el tamaño de la entrada.
Cuestiones relacionadas
- 1. ¿Cómo sacar los números más grandes de una gran cantidad de números?
- 2. Cómo raspar una gran cantidad de tweets
- 3. Concatenar una gran cantidad de archivos HDF5
- 4. Eliminar gran cantidad de archivos
- 5. corriente con una gran cantidad de cambios y PostgreSQL
- 6. Mover gran cantidad de archivos
- 7. Gran cantidad de constantes en Java
- 8. ¿Cómo se produce una gran cantidad de datos?
- 9. ¿Cómo debo sondear una gran cantidad de archivos para cambios?
- 10. Cómo evitar una gran cantidad de condiciones if else
- 11. ¿Cómo acelero Visual Studio con una gran cantidad de proyectos?
- 12. ¿Cómo inserto una gran cantidad de filas en MySQL?
- 13. Estándares de codificación: Gran cantidad de argumentos
- 14. Actualizando una gran cantidad de sitios de Joomla
- 15. C# gran tamaño matrices de 2 dim
- 16. ¿Estructura de datos para almacenar una gran cantidad de datos?
- 17. ¿Cómo determinar qué puntos están dentro de un polígono y cuáles no (gran cantidad de puntos)?
- 18. INSERT INTO SELECT - gran cantidad de registros
- 19. Gran generación de números aleatorios
- 20. API de contenido Java para una gran cantidad de archivos
- 21. Una gran cantidad de SIGSEGV mientras strace'ing proceso de Java
- 22. Administración de authorized_keys en una gran cantidad de hosts
- 23. una gran cantidad de (permiso denegado) en catalina.out
- 24. agregando gran cantidad de elementos a DOM
- 25. Fusionar una gran cantidad de marcos de datos en R
- 26. ¿Dónde puedo encontrar una gran cantidad de archivos de texto?
- 27. Transferencia de archivos comiendo una gran cantidad de CPU
- 28. optimización de mysql para una gran cantidad de datos
- 29. ¿Sugerencias para administrar una gran cantidad de archivos?
- 30. High Runtime for Dictionary.Add para una gran cantidad de elementos
Comentario eliminado ------------------------------ --------------------- –
El método 'Arrays.binarySearch()' –
Una descripción más adecuada que "Y" puede ser "intersección". – Sjoerd