Incorrecto. Si no trabajas por ti mismo los algoritmos ni desarrollaras la logica, ni tendras herramientas para enfrentarte a futuros problemas...
Si piensas un poco, cada columna es un punto de partida y cada elemento de esa columna es un destino. Por lo tanto tendras que recorrer las distintas columnas buscando elementos no nulos que te indiquen a que columna puedes deplazarte para continuar la busqueda de la solucion en dicha columna (lo cual sugiere un algoritmo recursivo). Tendras que tener en cuenta que de una columna no puedes volver a una por la que ya hayas pasaso ya que entrarias en un bucle infinito. De esta forma encontrarias una solucion. Si llevas un recuento de la distancia que ya has recorrido podras descartar los caminos que sean mas largos que las soluciones que ya hayas encontrado y podras dar la solucion de minima distancia.
Esto solo es una solucion. Espero que te sirva.
¡Saludos!
No he dicho que no desarrolle la logica, claramente hay que entender el algoritmo para poder usarlo y lograr transcribirlo a codigo; sino que digo eso porque esos algoritmos son usados ampliamente; entender los algoritmos y saber cuando usarlos creo que es la mejor herramienta. Claro que se podria hacer un algoritmo propio para este caso especifico.