Algoritmo: ¿cómo encontrar una columna en matriz rellena con todo 1, complejidad de tiempo O (n)?

Tengo una matriz que se parece a esto:

| 1 | 0 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 | 0 |
| 1 | 0 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 0 |
| 0 | 0 | 0 | 1 | 1 |

Debería encontrar si esta matriz tiene una columna con todos 1. En esta matriz es la columna 4. Y se dice que la complejidad del tiempo es O (n) y la memoria es O (1).

Esta matriz representa una relación binaria en un conjunto (de personas).n es el tamaño del conjunto, por lo que el tamaño de la matriz esn * n.

Puedo ver 2 posibles soluciones:

Tome la primera columna, vaya a través de ella, si ve cero, salte en la siguiente columna y así sucesivamente. Pero el peor caso de este algoritmo será O (n2);La siguiente, si tengo una suma de todas las columnas, puedo dar una respuesta en O (n). Pero no se dice en condiciones de tarea que hemos calculado sumas. Y si los computo, la complejidad será también O (n2);

¿Alguna otra solución?

Respuestas a la pregunta(5)

Su respuesta a la pregunta