Cómo mejorar las habilidades de algoritmo en Java

Según yo, la mejor manera posible de mejorar las habilidades del algoritmo es practicar más y más. Uno debe hacer un objetivo para resolver al menos una o dos preguntas de algoritmo cada día. Además, intente resolver diferentes tipos de preguntas. Cuando encuentre un problema, no salte a la parte de codificación. Primero, piense en el tema, piense en las estructuras de datos y los métodos, funciones que necesitaría para resolver la suma. Luego, resuelve el algoritmo. Sería mejor si anotara los pasos en un cuaderno correctamente. De esta manera, podrá mejorar enormemente sus habilidades de algoritmo. Luego, comience a codificar y vea si puede pasar todos los casos de prueba.

Le sugiero que tome la ayuda de algunas de las plataformas de codificación útiles como HackerRank, HackerEarth y CodeChef. La variedad de problemas que encontrará le ayudará a mejorar sus habilidades.

No soy realmente un chico Java, pero esto no debería ser muy diferente a hacerlo en C ++, y soy un chico C ++.
Creo que lo que te está sucediendo es que no sabes por dónde empezar a entender el idioma. Tenga la seguridad de que, teniendo un pseudocódigo, es principalmente una cuestión de traducción. Piense en lo que podría necesitar para resolver el problema en papel y busque equivalentes en el lenguaje Java. Por ejemplo, si intenta calcular el promedio entre un conjunto de números enteros, un enfoque sería sumarlos mientras los cuenta y luego dividir el resultado de la suma por el resultado del conteo. Luego, debe representar el conjunto, que es una lista de enteros (puede hacerlo con una lista real o con un vector), y luego debe iterar a través de cada elemento de dicha lista guardando la suma acumulada en alguna parte (sugerencia , la suma de los enteros siempre es un entero) y cuántos elementos contó (otro entero, sin signo, ya que no puede ser menor que cero), hasta que haya terminado con la lista. Luego, debe devolver su respuesta, que será el cociente entre los dos valores.
Lo que hago cada vez que necesito encontrar cómo expresar estas ideas en un idioma en particular es encontrar las palabras clave correctas y buscarlas en Google.
En el ejemplo, lo primero que buscaría sería “variable entera java”, luego “array java” o “vector java” o “list java”.
Si necesita más orientación, creo que mi correo electrónico está en algún lugar de mi perfil. De lo contrario, creo que quora te permite enviar mensajes privados. Estaré encantado de ayudarte.

La mayoría de las estructuras de datos ya implementadas en Java, puede realizar la implementación de estas estructuras de datos en la API de recopilación.
Además, si desea practicar algoritmos, lea la introducción al algoritmo de Thomas Corman.
El libro contiene muchos algoritmos debido a la simplicidad del pseudocódigo que puede implementar fácilmente en Java.
Finalmente, con la práctica viene la perfección.

¿Qué tal si revisas las respuestas a esta pregunta?
¿Cómo puedo mejorar significativamente mis habilidades de diseño de algoritmos y Java en un mes?

Compre un buen libro de algoritmos, por ejemplo Cormen, Introducción a los algoritmos, seleccione algunos algoritmos, siéntese y programe.

More Interesting

Después de aprender Python (junto con algoritmos y estructuras de datos), ¿sería beneficioso para mí aprender Selenium o debería seguir alguna otra búsqueda? Ya trabajo con Node.js, ¿hay algo más además de Django?

Encuentre la suma máxima del subconjunto de longitud k de un conjunto dado, de modo que la suma sea estrictamente menor que M

¿Cuál es el número más pequeño [matemática] N [/ matemática] tal que [matemática] N \ equiv 2 \ mod 3, [/ matemática] [matemática] N \ equiv 1 \ mod 5, [/ matemática] [matemática] N \ equiv 4 \ mod 7 [/ matemáticas]?

¿Soy solo yo o el algoritmo recursivo de Fibonacci es brillantemente complejo?

¿Es normal no entender el algoritmo de Dijkstra si no tengo ningún conocimiento previo sobre algoritmos?

¿Cuál es el valor de la suma k ^ 2 * C (n, k) 0 a n?

¿Qué son los problemas NP-completos? ¿Cómo podemos resolverlos?

¿Por qué usarías una cola en lugar de una lista vinculada? ¿No es una cola una versión peor de una lista vinculada?

¿Son los problemas NP completos también problemas NP difíciles? ¿Por qué?

Algoritmos aleatorizados: ¿Dónde puedo encontrar una colección extraña de cosas no relacionadas?

¿Cuál es la estructura de algoritmo / datos utilizada por Lucene para calcular el término frecuencia de los documentos?

Cómo resolver el problema SPOJ XORROUND

¿Cuáles son los ejemplos de implementación de algoritmos de clasificación en Android?

¿Cuál es la diferencia entre consultas DNS iterativas y recursivas?

¿Cuál es un ejemplo de un bucle infinito?