Sí definitivamente.
Existen los problemas clásicos que son comunes a todos los problemas:
- Complejidad de tiempo y espacio : siempre debe considerar el caso límite. Antes de escribir su algoritmo, debe tener en cuenta la complejidad de tiempo (y espacio, en caso de matriz grande) de su algoritmo. Hoy en día, las computadoras promedio pueden calcular ~ 1 millón de operaciones por segundo, por lo que ahora puede estimar su tiempo promedio.
- Desbordamiento de entero (flotante): este problema ocurrirá cuando codifique su algoritmo, piense antes
Ahora, para cada problema que resolverá, habrá un caso complicado que debe tener en cuenta antes de escribir su algoritmo. Es mejor pensar en los casos difíciles antes de escribir su algoritmo, que tratar de manejarlos después porque si codifica su algoritmo después, esto a menudo conduce a un código de espagueti. El mejor caso promedio es a menudo el primer caso en el que pensamos, sin embargo, los peores casos a veces son difíciles de encontrar.
- Java: ¿Cómo podemos verificar si un número es feliz o no mediante el uso de funciones de cadena simples y bucles sin ningún arreglo?
- ¿Cómo se puede probar que la ruta única a través de un árbol de expansión mínima entre dos nodos es una ruta más corta de "cuello de botella"?
- ¿Cuáles son los algoritmos más eficientes que resuelven de manera óptima un cubo de Rubik?
- ¿Las personas aprenden algoritmos antes de aprender JavaScript?
- Me da miedo mirar las preguntas en GeekForGeeks, ¿cómo superar este miedo?
Finalmente, ya sea que esté practicando para una programación competitiva o trabajando en problemas de la vida real, siempre habrá casos difíciles, y encontrarlos lo convertirá en un mejor programador.