Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func leastInterval(_ tasks: [Character], _ n: Int) -> Int {
- guard tasks.count > 0 else { return 0}
- var map = [Character: Int]()
- var maxCharCount = 0
- for char in tasks {
- map[char, default: 0] += 1
- maxCharCount = max(maxCharCount, map[char]!)
- }
- var sameMaxCount = 0
- for count in map.values{
- if count == maxCharCount {
- sameMaxCount += 1
- }
- }
- //因为要相隔N, 每个slot是N+1个数字。 因为最优一个slot不需要满足相隔N了, 后面没有了。所以是maxCharCount - 1个slot
- let ans = (n + 1) * (maxCharCount - 1) + sameMaxCount
- return max(ans , tasks.count)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement