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 }