HXXXXJ

759. Employee Free Time

Mar 18th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 0.98 KB | None | 0 0
  1.  func employeeFreeTime(_ schedule: [[Interval]]) -> [Interval] {
  2.         var res = [Interval]()
  3.         var map = [(Int, Bool)]()  // timestamp, isStart
  4.         for sche in schedule{
  5.             for inter in sche {
  6.                 map.append((inter.start, true))
  7.                 map.append((inter.end, false))
  8.             }
  9.         }
  10.         map.sort{
  11.             if $0.0 == $1.0 {
  12.                 return $0.1 ? false : true    
  13.             }
  14.             return $0.0 < $1.0
  15.         }
  16.        
  17.         var i = 0
  18.         var preEnd = -1
  19.         var startCount = 0
  20.         for i in  0 ..< map.count{
  21.             let cur = map[i]
  22.             if cur.1 {
  23.                 if preEnd != -1 && preEnd != cur.0 && startCount == 0{
  24.                     res.append(Interval(preEnd, cur.0))
  25.                 }
  26.                 startCount += 1
  27.             }else{
  28.                 preEnd = max(preEnd, cur.0)
  29.                 startCount -= 1
  30.             }
  31.         }
  32.         return res
  33.     }
Add Comment
Please, Sign In to add comment