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.
- ¿Hay alguna prueba matemática para garantizar que la suposición múltiple es verdadera, es decir, que cualquier punto de datos en un espacio de alta dimensión se encuentra en una variedad de baja dimensión incrustada en ese espacio?
- ¿Hay mejores funciones hash que SHA-512?
- ¿Cuál es la diferencia entre Tree y spanning tree?
- En la era del comercio algorítmico y la inteligencia artificial, ¿cómo se entrena un aspirante inversor?
- ¿Por qué las poderosas computadoras de hoy usan tanta energía en comparación con el cerebro humano que usa menos que una bombilla?
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.