12345678910111213141516171819 |
- func leastInterval(tasks []byte, n int) int {
- freq := make([]int, 26)
- for _, t := range tasks {
- freq[t-'A']++
- }
- max, cnt := freq[0], 0
- for _, i := range freq {
- if max < i {
- max, cnt = i, 1
- } else if max == i {
- cnt++
- }
- }
- res := (max-1)*(n+1) + cnt
- if l := len(tasks); res < l {
- return l // If n is small enough, all tasks can be processed one by one
- }
- return res
- }
|