You are given an array of CPU tasks, each labelled with a letter from A to Z, and a number n. Each CPU interval can be idle or allow the completion of one task. Tasks can be completed in any order, but there's a constraint: there has to be a gap of at least n intervals between two tasks with the same label.
Return the minimum number of CPU intervals required to complete all tasks.
1 <= tasks.length <= 10^4tasks[i] is an uppercase English letter0 <= n <= 100tasks = ["A","A","A","B","B","B"], n = 28tasks = ["A","C","A","B","D","B"], n = 16tasks = ["A","A","A","B","B","B"], n = 310