leetcode.array--16. 3Sum Closest
来源:互联网 发布:计算机的发展史知乎 编辑:程序博客网 时间:2024/05/17 07:15
问题:16. 3Sum Closest
问题描述:https://leetcode.com/problems/3sum-closest/description/
题目大致意思是说:给出一个序列,找出其中三个数,使得这三个数的和最接近给定的目标值target,输出这三个数的和。
解题思路呢也比较明了,首先对序列排序,然后定下一个值nums[i],由于序列有序,后续的计算可以从两端向中间逼近,即令left=i+1,right=len(nums)-1,当left<right时,计算nums[i]+nums[left]+nums[right]的和sumn,找一个最接近target的sumn值。当sumn值大于target时,做right-=1,当sumn值小于target时,做left+=1,若sumn==target则直接返回。因此时间复杂度是O(n*n),空间复杂度 O(1)。
Python:
class Solution(object): def threeSumClosest(self, nums, target): """ :type nums: List[int] :type target: int :rtype: int """ nums.sort() res=nums[0]+nums[1]+nums[2] minn = abs(res-target) length = len(nums) if length==3: return res for i in range(length): left,right=i+1,length-1 while left<right: sumn=nums[i]+nums[left]+nums[right] if sumn==target: return sumn if abs(sumn-target)<minn: res=sumn minn=abs(sumn-target) if sumn>target: right-=1 if sumn<target: left+=1 return res
下面贴一个好玩的东西:
这是上面代码的运行时间,不知道O(n^2)为什么会在这个位置,当然这个时间的随机性很大,但可能跟语言也有很大关系。
于是想到一个梗,PHP是世界上最好的语言???
阅读全文
0 0
- 16. 3Sum Closest leetcode(array)
- leetcode.array--16. 3Sum Closest
- LeetCode[Array]----3Sum Closest
- [Array]3Sum Closest
- LeetCode 16. 3Sum Closest
- LeetCode --- 16. 3Sum Closest
- [Leetcode] 16. 3Sum Closest
- 【leetcode】16. 3Sum Closest
- [leetcode] 16. 3Sum Closest
- leetcode 16. 3Sum Closest
- leetcode 16. 3Sum Closest
- leetcode 16. 3Sum Closest
- LeetCode - 16. 3Sum Closest
- [LeetCode]16. 3Sum Closest
- LeetCode 16. 3Sum Closest
- LeetCode *** 16. 3Sum Closest
- Leetcode 16. 3Sum Closest
- leetcode 16. 3Sum Closest
- Tensorflow tf.app.run() hands-on
- 两年JAVA程序员的面试总结
- 【NOI2002】【bzoj1407】Savage
- 动态配置信息需要提供一个重新缓存的按钮
- 练习
- leetcode.array--16. 3Sum Closest
- 对互联网的几点思考
- 数组
- 最短子数组练习题 -- 算法小结
- 【树莓派】基本操作
- MyEclipse 10 代码提示
- Uva 10888 Warehouse(KM)
- 用随机数选人(几行没有任何技术含量的代码)
- VueJS(2)--创建工程