Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func threeSumClosest(_ nums: [Int], _ target: Int) -> Int {
- guard nums.count > 2 else{ return 0}
- let sorted = nums.sorted()
- var res:Int?
- for i in 0 ... sorted.count - 3 {
- var p1 = i + 1
- var p2 = sorted.count - 1
- while p1 < p2{
- let cur = sorted[p1] + sorted[p2] + sorted[i]
- if res == nil || abs( target - res!) > abs( target - cur) { res = cur }
- if cur == target {
- return target
- }else if cur < target {
- p1 += 1
- }else {
- p2 -= 1
- }
- }
- }
- return res!
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement