Entrevista a los 150 mejoresfácil

Programador de tareas

Guía detallada e implementación de Python para el problema del 'Programador de tareas'.

Declaración del problema

fácil

Se le proporciona una serie de tareas de CPU, cada una representada por una letra de la A a la Z y un intervalo de enfriamiento n. Cada ciclo o intervalo permite la realización de una tarea. Las tareas se pueden completar en cualquier orden, pero existe una restricción: las tareas idénticas deben estar separadas por al menos n intervalos debido a los requisitos de refrigeración.

Devuelve el número mínimo de intervalos necesarios para completar todas las tareas.

Escribe una función leastInterval(tasks: List[str], n: int) -> int.

Restricciones
  • 1 <= len(tasks) <= 10^4
  • tasks[i] is an uppercase English letter
  • 0 <= n <= 100

Ejemplos

Example 1
Input
tasks = ["A","A","A","B","B","B"], n = 2
Output
8
Explanation

A possible sequence is A -> B -> idle -> A -> B -> idle -> A -> B.

Example 2
Input
tasks = ["A","A","A","B","B","B"], n = 0
Output
6
Explanation

With no cooling interval, tasks can be executed continuously without idles.

Need a Hint?
Considere la posibilidad de utilizar estructuras de datos específicas de montón/cola prioritaria, como conjuntos o montones.
Edge Cases to Watch
  • Estructuras de entrada vacías
  • Entradas de un solo elemento
  • Grandes límites numéricos

¿Listo para resolver?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Abrir en el editor
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Recursos recomendados de Python

Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.