Advertisement
HXXXXJ

Merge / Intersection of sorted interval

Mar 11th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 0.81 KB | None | 0 0
  1. struct Interval {
  2.     var start : Int
  3.     var end : Int
  4. }
  5.  
  6. func mergeInterval (_ input1 : Interval, _ input2 : Interval) -> [Interval]{
  7.     let arr = [input1, input2].sorted { $0.start < $1.start }
  8.     let int1 = arr[0]
  9.     let int2 = arr[1]
  10.    
  11.     if int1.end < int2.start { return [int1, int2] }  // cant mergge
  12.     return [Interval(start: int1.start , end: int2.end)]
  13. }
  14.  
  15. func interSection (_ input1 : Interval, _ input2 : Interval) -> Interval?{
  16.     let arr = [input1, input2].sorted { $0.start < $1.start }
  17.     let int1 = arr[0]
  18.     let int2 = arr[1]
  19.    
  20.     if int1.end < int2.start { return nil } // no intersection
  21.     return Interval(start: int2.start, end: int1.end)
  22. }
  23.  
  24.  
  25.  
  26. let int1  = Interval(start: 2, end: 4)
  27. let int2  = Interval(start: 3, end: 6)
  28.  
  29. print(interSection( int2, int1))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement