在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ Given an array of n integers nums and a target, find the number of index triplets For example, given nums = Return 2. Because there are two triplets which sums are less than 2: [-2, 0, 1] [-2, 0, 3] Follow up: 给定n个整数nums和一个目标的数组,找出满足条件nums[i]+nums[j]+nums[k]<目标的索引三元组i、j、k的个数,其中0<=i<j<k<n。 例如,给定nums=[-2,0,1,3]和target=2。 返回2。因为有两个三元组的和小于2: [-2, 0, 1] [-2, 0, 3] 进阶: 你能在O(n2)运行时解决它吗? 1 class Solution { 2 func threeSumSmaller(_ nums:[Int],_ target:Int) -> Int{ 3 var nums = nums 4 if nums.count < 3 {return 0} 5 var res:Int = 0 6 var n:Int = nums.count 7 nums = nums.sorted(by:<) 8 for i in 0..<(n - 2) 9 { 10 var left:Int = i + 1 11 var right:Int = n - 1 12 while (left < right) 13 { 14 if nums[i] + nums[left] + nums[right] < target 15 { 16 res += right - left 17 left += 1 18 } 19 else 20 { 21 right -= 1 22 } 23 } 24 } 25 return res 26 } 27 }
|
请发表评论