Advertisement
HXXXXJ

16. 3Sum Closest

Jan 27th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 0.71 KB | None | 0 0
  1.     func threeSumClosest(_ nums: [Int], _ target: Int) -> Int {
  2.         guard nums.count > 2 else{ return  0}
  3.         let sorted = nums.sorted()
  4.         var res:Int?
  5.  
  6.         for i in 0 ... sorted.count - 3 {
  7.             var p1 = i + 1
  8.             var p2 = sorted.count - 1
  9.             while p1 < p2{
  10.                 let cur = sorted[p1] + sorted[p2] + sorted[i]
  11.                 if  res == nil || abs( target - res!) > abs( target - cur) { res = cur }
  12.                 if cur == target {
  13.                     return target
  14.                 }else if cur < target {
  15.                     p1 += 1
  16.                 }else {
  17.                     p2 -= 1
  18.                 }
  19.             }
  20.         }
  21.         return res!
  22.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement