¿Cuáles son los mejores sitios web con problemas de práctica de algoritmos?

Escribiría 3 de ellos:

  • Codeforces
  • Timus Online Judge
  • TopCoder

Las razones siguen … (Bueno, no me refiero a sesgo hacia ninguna de las siguientes tres plataformas).


Codeforces

Sí, estoy de acuerdo con que Codeforces tiene un buen sistema que clasifica bien los problemas. Hay etiquetas en la mayoría de los problemas (que están ocultos antes de resolver el problema). Los usuarios que aceptan el problema pueden agregar / eliminar etiquetas .

En particular, me gusta la función de ” participación virtual ” (Concursos de visita – Codeforces). Puede simular participar en un concurso anterior con los participantes y ver el “marcador en tiempo real”. Estos concursos en línea se llevan a cabo aproximadamente semanalmente.

Los problemas son interesantes en general.

Puede ver la mayoría de los códigos fuente escritos por otros. Puede ordenar las soluciones por longitud de código / tiempo de envío.

(Uh, la interfaz de usuario es bonita y elegante).


Timus Online Judge

En mi opinión, muchos problemas en este DO son muy interesantes y novedosos, en lugar de ser demasiado estándar / clásicos.

Para la categorización, puede ver la página

  • http://acm.timus.ru/problemset.aspx

y clasifique los problemas por categorías o dificultades (lo que supongo se basa en métricas como el número de envíos y la tasa de aceptación). Si te sientes ambicioso, prueba los problemas más difíciles.

Debajo de cada problema, hay etiquetas . Si crees que son spoilers, también puedes ocultarlos presionando el enlace ” Ocultar etiquetas para problemas no resueltos ” en cualquier problema.

Ocasionalmente, puede participar en tiempo real (o casi en tiempo real) en un concurso europeo subregional / regional ACM-ICPC. (http://acm.timus.ru/archive.aspx)


TopCoder

Esta es una de las plataformas internacionales de concurso de programación individual más populares. Puedes practicar en la sala de práctica para concursos de algoritmos pasados ​​(también conocidos como SRM s – partidos de una ronda). Hay categorías para cada problema.

Pero podría ser un poco difícil de usar por primera vez. Primero, debe identificar cómo iniciar la arena (presionando el botón O(n) en la esquina superior izquierda en http://community.topcoder.com/tc) con Java, luego debe saber cómo probar y envíe un fragmento de código y comprenda las diferentes fases (Descripción general del algoritmo – TopCoder Wiki) en un SRM … pero dada la calidad del problema que vale, si es serio.

También hay editoriales de muy alta calidad para coincidencias de algoritmos (Algorithm Problem Set Analysis). Por tema tutorial también está disponible (Algorithm Tutorials).

Muchos (incluido ACRush …) sugieren que este es un buen lugar para aprender y practicar DP.

Puede ver los códigos de otros en salas de práctica o en March Archive.

CodingBat tiene buenos problemas de programación de principiante a intermedio para Java y Python; Las primeras categorías son solo para que conozcas el idioma, pero los problemas de recurrencia te darán una buena introducción al retroceso recursivo.

El Proyecto Euler está lleno de problemas basados ​​en las matemáticas que requieren programación para resolver (por ejemplo, encontrar el divisor primo más grande de un gran número). Los problemas se vuelven razonablemente difíciles con bastante rapidez, pero si usted es una persona matemática (que con suerte lo es si quiere mejorar en ciencias de la computación), debe disfrutarlos y ser capaz de resolverlos.

Algunas compañías también tienen problemas de programación que puede intentar y, si lo desea, presentar soluciones para obtener potencialmente una entrevista de trabajo / pasantía. Spotify hace esto (Rompecabezas – Spotify). Facebook solía tener una lista de acertijos que podrías resolver, pero desde entonces ha pasado a una sola oportunidad de resolver 1 problema de programación para obtener una entrevista (Prueba de programación | Contratar programadores | Calle de entrevista | Desafíos).

¡MUCHOS nombres están ahí!

Para empezar…
1. Codechef: concurso de programación, concurso de programación, programación informática en línea
2. Juez de Esfera en línea – Juez de Esfera en línea (SPOJ)
3. Codeforces- Codeforces
4. Topcoder- topcoder
5. Juez en línea UVA- Página en onlinejudge.org
y muchos otros sitios similares.

Puede mejorar su caja de herramientas con cursos de algoritmos de Coursera.

No sé sobre los otros, pero para Codechef y SPOJ puedes usar los clasificadores de problemas …
1. Codechef- Página en appspot.com
2. SPOJ- Pratik Tandel
Estos clasificadores de problemas clasifican los problemas según los algoritmos que necesita saber para resolverlos (sin embargo, esas no son las únicas formas de resolverlos). Tales conjuntos de problemas clasificados pueden ser útiles cuando se aprenden varias técnicas y algoritmos.

Editar: Por favor, no tenga la idea errónea de que la programación depende del lenguaje. Solo tienes que aprender a resolver problemas algorítmicamente. Para ello, puede elegir cualquiera de sus idiomas preferidos, que en su caso parece ser Java.

TutorialsPoint es lo que usé para C ++ y es bastante bueno. Hay tutoriales para Java y Python que probablemente tengan una calidad similar. Después de aprender los conceptos básicos, no debería buscar hacer las cosas también “paso a paso” (mi traducción cínica: que me digan qué hacer ;-)), sino más bien jugar por su cuenta. Aprendí mucho de lo que sé en C ++ y Java al implementar todo al hacer problemas.

En Python, puede considerar revisar la documentación de Python 3.4 ya que los conceptos básicos no son difíciles de aprender.

En cuanto a los sitios problemáticos, muchas veces se han vuelto a compartir excelentes listas de recursos en Quora. Aquí hay una lista personal de lo que uso en orden decreciente de preferencia / regularidad:

  • Codeforces: concursos frecuentes y frecuentes, muchas funciones y problemas de alta calidad (las traducciones al inglés son a veces otro trato)
  • Topcoder: la interfaz es un poco rara, pero los problemas modernos son agradables. También concursos regulares.
  • Juez en línea de UVa: generalmente problemas de estilo ACM
  • Juez Esfera Online (SPOJ)
  • Timus Online Judge
  • ACM-ICPC Live Archive: problemas de concursos ACM anteriores. Acabo de comenzar esto muy recientemente y muchos de los problemas de ACM aparecen en los últimos 3 sitios

[A2A]

gracias por A2A

Cuando comienzo la programación competitiva, si le pido a alguien un sitio donde pueda aprender por mí mismo, todos y cada uno me recomendaron el tutorial de ciencia de datos del mejor programador. Aunque no se actualizó por un tiempo, aún es digno de aprender algoritmo. Hay un sitio ruso Emaxx que contiene todo tipo de tutoriales de algoritmos esenciales para la programación de concursos con algún problema de práctica también. Algorithmist es otro sitio que me gusta seguir cuando hablaba en serio sobre la programación de concursos. En los últimos tiempos, la serie Code Monk de Hackerearth es otra buena fuente para aprender algoritmos a partir de croquis.

  1. Tutorial de ciencia de datos de Topcoder.
  2. Algoritmo
  3. Emaxx. (usa la traducción de google)
  4. Código monje.

Algunos de los mejores sitios para aprender a programar incluyen Udemy, W3schools, entre otros. Estos sitios ofrecen cursos y tutoriales sobre ciertos temas que pueden ayudarlo a mejorar sus conocimientos y habilidades en programación de computadoras en general. Es importante tener en cuenta que es posible que deba pagar para tener acceso a contenido premium, pero es posible que no sea útil para usted. ¿Cómo podrá medir su progreso cuando esté estudiando en línea, quién le ofrecerá asistencia y apoyo cuando lo necesite? Ir a una buena escuela de programación es la forma más segura de aprender programación y programación de computadoras. Nuestra escuela ofrece un programa de desarrollo de software full stack de 2 años que te ayudará a aprender los fundamentos y conceptos que te ayudarán a convertirte en un programador full stack. Vaya allí y trabaje con sus compañeros estudiantes y maestros para ayudarlo a progresar mucho más de lo que esperaría mientras usa sitios web para aprender a programar. Los proyectos que tendrá que hacer en la escuela le ayudarán mucho a conseguir la experiencia que tanto necesita y que contará mucho cuando busque empleo en la industria laboral.

Escuela Holberton

Codeforces, TopCoder, Inc. | Hogar de la comunidad de desarrollo más grande del mundo., Saratov State University :: Online Contester, Timus Online Judge, Sphere Online Judge (SPOJ) y muchos otros jueces en línea de diferentes universidades son bastante populares y conocidos.

The Light Online Judge ( http://lightoj.com/ ): no es un juez en línea tan conocido pero bastante agradable con buenos problemas categorizados de manera bastante simple, buen soporte de lenguajes de programación populares, compilador en línea y foro.

Hay varios sitios web en Internet. Para agregar a la respuesta anterior, uso lo siguiente para aprender lo que quiera:

  1. edX: cursos de nivel universitario
  2. Coursera – Cursos gratuitos en línea de las mejores universidades | Coursera
  3. Udemy: cursos en línea en cualquier momento y en cualquier lugar
  4. Aprende a codificar – Code academy
  5. Tutoriales web en línea de W3Schools

Recomendaría el sitio web que acompaña al libro “Algorithms”, cuarta edición de Robert Sedgewick y Kevin Wayne. En realidad, puedes ir sin el libro: el sitio del libro es prácticamente autónomo. Tiene dos excepciones del libro (con menos texto, por lo que es un buen punto de referencia) y muchos ejercicios que lo ayudarán a reforzar su comprensión del material.

Una de las mejores cosas de este libro / sitio web es que pone más énfasis en cómo se pueden implementar los algoritmos en Java. En cierto sentido, le enseña tanto algoritmos como las mejores prácticas de codificación, y también hay muchos ejercicios de codificación en este sitio web.

Este tiene un montón de algoritmos básicos Algoritmos – GeeksforGeeks
Uno de los mejores tutoriales de algoritmos (topcoder). Pero, podría ser abstruso para un tyro.
También podrías inscribirte en Coursera o mirar conferencias de video | Introducción a los algoritmos (SMA 5503) | Ingeniería Eléctrica e Informática | MIT OpenCourseWare

probarás el sitio web

Dash Aprende con proyectos

Demos de Q : aprenda con demostraciones y proyectos

The Code Player Aprende de los screencasts

Talent Buddy – Aprende con cuestionarios y rompecabezas

Codewars – Aprende de los desafíos del código real

Codaround – Aprende con la comunidad

Sugiero LightOJ, un juez en línea de Bangladesh. Aquí obtendrá problemas categorizados de diferentes tipos de algoritmos. La mayor belleza de este juez es que sus problemas no son idénticos. Cubre todo tipo de problemas algorítmicos y su foro es muy bueno.

Para que puedas practicar en http://lightoj.com

La programación es algo, lo que aprende, haciendo práctica … Este artículo contiene los sitios web, a través de los cuales puede mostrar sus habilidades de programación … Espero que esto lo ayude …

Sitios web populares del concurso de codificación y concurso de codificación para mostrar sus habilidades de programación

Si conoce JavaScript (o desea aprenderlo), consulte NodeSchool, que tiene desafíos de JavaScript basados ​​en la línea de comandos. Si solo quieres mejorar, te recomiendo elegir un proyecto que consideres razonable y ¡solo tratar de construir ese sitio! Le ayudará a enfrentar todos los desafíos que enfrentará mientras sea un desarrollador web real.

PD: si está buscando los tutoriales más útiles en Internet, consulte http://www.rtfmanual.io . Los desarrolladores han votado por sus favoritos allí.

Hay varios buenos lugares para comenzar a aprender. Depende de la forma en que le guste hacerlo y del tipo de conexión a Internet que tenga. Pruebe Code.org: cualquiera puede aprender y Codecademy: aprenda a codificar, interactivamente, de forma gratuita si desea una experiencia muy interactiva o puede dar la oportunidad de aprender a codificar en línea con Code School | Code School, aprenda a codificar con cursos en línea gratuitos, proyectos de programación y preparación de entrevistas para trabajos de desarrollador. y SoloLearn: Learn to Code, ambos muy buenos. Personalmente, tengo una cuota de Internet limitada y la que más he usado es SoloLearn: Learn to Code porque es muy ahorrativa. Espero eso ayude.

Hay un juez en línea bastante bueno en la Universidad de Tianjin: Juez en línea TJU ACM-ICPC. A pesar de la interfaz bastante mala, tiene una muy buena colección de concursos regionales de ICPC y una herramienta de concurso virtual. Además de todo lo mencionado anteriormente, Codeforces tiene un gimnasio, donde puedes encontrar algunos concursos de entrenamiento de estilo acm.

Codeforces tiene una colección considerable de problemas de alta calidad clasificados por tema. Puede ordenar los problemas en orden de cuántas personas los han resuelto, dándole una idea de la dificultad relativa.

Además de topcoder y codeforces, me gustaría agregar algunos nombres a la lista:

  1. http://www.codechef.com : los concursos mensuales son muy buenos, especialmente los concursos largos, también hay una buena GUI y un espacio de trabajo fácil de usar.
  2. Esfera Juez en línea (SPOJ) : tiene un conjunto de problemas muy grande y exhaustivo.
  3. http://www.hackerearth.com : es un sitio web muy agradable para practicar problemas, especialmente los desafíos.
  4. HackerRank: el mejor sitio web si quieres aprender algoritmos progresivamente. Este es uno de los mejores sitios para comenzar a trabajar con datos reales e inteligencia artificial. Este sitio también ayuda a desarrollar habilidades de programación funcional.

La práctica es la única clave para el éxito en algoritmos. Hay muchos sitios web buenos disponibles para practicar en línea. Encontré que este Algolint es muy atractivo, es la herramienta más simple para practicar la codificación, también puedes guardar tu código como plantilla para que puedas tener código base listo todo el tiempo cuando está intentando un problema similar.

Puedes probar:

  • hackerrank.com
  • tutorialspoint.com
  • codeacademy.com

Los he usado y proporcionan una buena experiencia de programación para principiantes. Code Academy tiene un sentimiento de clase / escuela. Hackerrank también tiene desafíos para ayudarlo a conocer un lenguaje y una programación básica. El punto de tutoría presenta y explica muchos temas bajo cada lenguaje de programación

More Interesting

¿Cuáles son los algoritmos detrás de las simulaciones de partículas en C / C ++?

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

Cómo implementar un algoritmo de programación de CPU del sistema operativo que evita que se produzcan puntos muertos

Dados N cajas grandes y M cajas pequeñas de diferentes tamaños, ¿cómo elegir una caja grande óptima para empacar todas las cajas más pequeñas?

¿Qué haces si la resolución de un problema de algoritmo lleva demasiado tiempo?

¿Cómo diseñaría un algoritmo para clasificar 100 millones de libros y encontrar duplicados funcionales?

¿Todos los NP-HARD que son decidibles también son NP-Complete?

¿Cómo se puede resolver una variante del problema 3-SAT en tiempo lineal usando divide y vencerás?

¿Es posible proporcionar un análisis de complejidad para todos los algoritmos en términos de theta?

Cómo resolver esta relación de recurrencia: (bn + 1) = 6 * ((bn)) ^ 7, b (0) = 36

¿Qué algoritmos de programación utiliza cada sistema operativo común?

¿Qué algoritmos de Machine Learning pueden usarse para el aprendizaje supervisado incremental?

¿Cuál es la mejor estructura de datos para un juego de ajedrez?

¿Cómo funciona el algoritmo de caminante aleatorio para la segmentación de imágenes en términos simples?

¿Por qué hay una diferencia de complejidad de tiempo entre los algoritmos de clasificación en Java cuando estoy usando Integer e integer?