Cómo abordar los problemas en SPOJ (lea los detalles)

En primer lugar, ¡Bienvenido a la programación competitiva!

Lo que creo es que aprenderá todo mientras resuelve soluciones de lectura, editoriales, recorre la red y resuelve por su cuenta.

Entonces, primero lea el problema, comprenda cuidadosamente lo que quiere exactamente.
En este caso, tiene una secuencia desordenada de automóviles que necesita reordenar usando una calle, ya que la captura es solo el último automóvil que ingresó y puede salir primero. Esto suena como un último en entrar, primero en salir, que es equivalente a una pila.

Ahora suponga que la secuencia es 5 1 2 4 3.
El primer auto que dejaré pasar es 1, pero aquí el primer auto es 5, así que empujémoslo hacia el carril lateral o nuestra pila .

Entonces el estado de nuestra pila es [5]

Ahora puedo verificar el número del próximo automóvil o qué número de automóvil está en la parte superior de la pila.

El siguiente número de carro viene es 1 y la parte superior del número de carro de pila es 5. Voy a dejar pasar el carro de carril ya que eso es lo que quiero. Ahora estoy buscando el auto número 2.

El siguiente número de auto que viene es el 2 y la parte superior del número del auto de la pila es 5. Voy a dejar pasar el auto de carril, ya que eso es lo que quiero. Ahora estoy buscando el auto número 3.

El siguiente número de carro es 4 y la parte superior del carro de la pila es 5, pero quería 3, así que lo empujaré al carril lateral o la pila que ahora se convierte en [4,5] con 4 en la parte superior.

El siguiente número de auto es 3 y la parte superior del stack es 4. Voy a dejar pasar este auto ya que eso es lo que quiero. Ahora estoy buscando el auto número 4.

No quedan autos, así que ahora puedo revisar la pila y sí, tengo 4. así que lo saco y lo dejo pasar y hago lo mismo para el próximo auto 5.

Por lo tanto, los autos se reordenan correctamente de 1 a 5.

Pruébelo para la secuencia 5 1 2 3 6 7 4.

La clave para darse cuenta es comprender el enunciado del problema y darse cuenta de que se puede resolver usando una pila. ¿Cómo llego a darme cuenta de que esto es completamente nuevo? No lo haces, lo obtienes mientras practicas y resuelves más.

En cuanto a los casos de prueba. Inicialmente pruebe los casos de prueba de ejemplo y una vez que terminen, debería intentar pensar en casos de esquina o mirar las restricciones. De nuevo, todo viene con la práctica.

More Interesting

¿Cuáles son los límites teóricos del poder computacional dictados por las leyes conocidas de la física?

¿Cuál es el mayor problema de programación de todos los tiempos?

¿Cuáles son algunas de las mejores prácticas al desarrollar una aplicación Meteor para soportar más de un millón de usuarios?

¿Por qué Amazon y Facebook se agrupan comúnmente con empresas como Google, Apple y Microsoft cuando se considera un trabajo emocionante para los informáticos?

¿Cuál es el origen del nombre "Informática"?

¿Cuándo crees que alcanzaremos la inteligencia general artificial?

¿Qué es la ley de Moore? ¿Está terminando?

¿Por qué es que los mejores cerebros del Departamento de Ciencias de la Computación en los IIT, en última instancia, aterrizan en trabajos de banca de inversión con empresas como Goldman Sachs en lugar de trabajar hacia avances tecnológicos para la nación?

¿Cuál es la diferencia entre inteligencia artificial, aprendizaje automático y aprendizaje profundo? ¿El aprendizaje profundo es parte del aprendizaje automático?

¿Cuál es la diferencia entre 'ingestión de datos' e 'integración de datos'? ¿Son estos términos generales sinónimos o se refieren a conceptos diferentes?

¿Cómo se supera la intimidación del conocimiento técnico?

¿La máquina Eureka ha tenido un éxito continuo?

¿Hay alguna vista de Ciencias de la Computación sobre el muestreo compresivo?

¿Cuál es una buena explicación del 'método potencial' para el análisis amortizado?

¿Cuál es mejor CS en BIT mesra o CS en MNIT Jaipur?