Advertisement
HXXXXJ

855. Exam Room

Apr 12th, 2019
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.16 KB | None | 0 0
  1. class ExamRoom {
  2.  
  3.     var sit = [Int]()
  4.     let maxEnd : Int
  5.     init(_ N: Int) {
  6.         maxEnd = N
  7.     }
  8.    
  9.     func seat() -> Int {
  10.         if sit.count == 0 {
  11.             sit.append(0)
  12.             return 0
  13.         }
  14.        
  15.         var maxLenth = 0
  16.         var res = -1
  17.         if !sit.contains(0){ //0没有用过
  18.             maxLenth = sit[0] - 0
  19.             res = 0
  20.         }
  21.        
  22.         var left = 0
  23.         var runner = left + 1
  24.         while runner < sit.count{
  25.            
  26.             let len = (sit[runner] - sit[left] ) / 2
  27.  
  28.             if len > maxLenth{
  29.                 maxLenth = len
  30.                 res =  (sit[runner] + sit[left] ) / 2
  31.             }
  32.             left = runner
  33.             runner += 1
  34.         }
  35.        
  36.         if !sit.contains(maxEnd - 1){ //0没有用过
  37.             let len = (maxEnd  - 1 - sit.last!)
  38.  
  39.             print(maxLenth)
  40.             if len > maxLenth{
  41.                 res =  maxEnd - 1
  42.             }
  43.         }
  44.         sit.append(res)
  45.         sit.sort()
  46.         return res
  47.     }
  48.    
  49.     func leave(_ p: Int) {
  50.         sit = sit.filter{$0 != p}
  51.         // print(sit)
  52.     }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement