Tengo una matriz de enteros bidimensional (digamos 1000 por 1000), llamémosla matriz. Cada celda de esta matriz tiene una coordenada X e Y (cada una de 0 a 999 en este ejemplo). Inicialmente todas las celdas de la grilla tienen un valor de 0. Durante el tiempo de ejecución del programa, algunas de las celdas de la matriz están configuradas en otro valor <> 0.Encontrar celda de cuadrícula no vacía en matriz bidimensional
Ahora necesito una función rápida (algoritmo) que tome algunos valores X e Y y devuelve el valor de la matriz en esas coordenadas. Sin embargo, si la matriz en la ubicación X/Y especificada es 0, entonces el algoritmo debe determinar un valor distinto de cero dentro de la matriz que sea lo más cercano posible a la ubicación X/Y original.
He pensado en un bucle alrededor de la posición original de X/Y con el incremento del desplazamiento en cada ciclo del bucle, pero no estoy seguro de si esto es realmente el algoritmo más rápido ...
¿Alguna idea? Preferiría el código de Java, pero cualquier pseudo-código también está bien :)
¡Gracias de antemano por su ayuda! Saludos cordiales, Matthias