Advertisement
HXXXXJ

621. Task Scheduler

Mar 26th, 2019
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 0.79 KB | None | 0 0
  1.     func leastInterval(_ tasks: [Character], _ n: Int) -> Int {
  2.         guard tasks.count > 0 else { return 0}
  3.        
  4.         var map = [Character: Int]()
  5.         var maxCharCount = 0
  6.         for char in tasks {
  7.            
  8.             map[char, default: 0] += 1
  9.             maxCharCount = max(maxCharCount, map[char]!)
  10.         }
  11.         var sameMaxCount = 0
  12.        
  13.         for count in map.values{
  14.             if count == maxCharCount {
  15.                 sameMaxCount += 1
  16.             }
  17.         }
  18.         //因为要相隔N, 每个slot是N+1个数字。 因为最优一个slot不需要满足相隔N了, 后面没有了。所以是maxCharCount - 1个slot
  19.         let ans = (n + 1) * (maxCharCount - 1) + sameMaxCount
  20.        
  21.         return max(ans , tasks.count)
  22.        
  23.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement