DAY7:leetcode #16 3Sum Closest
2016-07-11 15:19
399 查看
Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input would have
exactly one solution.
Subscribe to see which companies asked this question
class Solution(object):
def threeSumClosest(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
result = (0,0,0)
min_v = 99999
nums = sorted(nums)
for i in range(0,len(nums)-2):
j = i + 1
k = len(nums) - 1
while(True):
if j == k:
break
if nums[k] + nums[i] + nums[j] >= target:
if abs(nums[k] + nums[i] + nums[j] - target) < min_v:
result = (i,j,k)
min_v = abs(nums[k] + nums[i] + nums[j] - target)
k = k - 1
elif nums[k] + nums[i] + nums[j] < target:
if abs(nums[k] + nums[i] + nums[j] - target) < min_v:
result = (i,j,k)
min_v = abs(nums[k] + nums[i] + nums[j] - target)
j = j + 1
return nums[result[0]] + nums[result[1]] + nums[result[2]]
这道题和#15 3Sum思想一致,改变的一点就是使用一个变量存储与target最小的差。这道题只要求输出最近似的一个结果,所以只保存一个最小的差就可以了。
exactly one solution.
For example, given array S = {-1 2 1 -4}, and target = 1. The sum that is closest to the target is 2. (-1 + 2 + 1 = 2).
Subscribe to see which companies asked this question
class Solution(object):
def threeSumClosest(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
result = (0,0,0)
min_v = 99999
nums = sorted(nums)
for i in range(0,len(nums)-2):
j = i + 1
k = len(nums) - 1
while(True):
if j == k:
break
if nums[k] + nums[i] + nums[j] >= target:
if abs(nums[k] + nums[i] + nums[j] - target) < min_v:
result = (i,j,k)
min_v = abs(nums[k] + nums[i] + nums[j] - target)
k = k - 1
elif nums[k] + nums[i] + nums[j] < target:
if abs(nums[k] + nums[i] + nums[j] - target) < min_v:
result = (i,j,k)
min_v = abs(nums[k] + nums[i] + nums[j] - target)
j = j + 1
return nums[result[0]] + nums[result[1]] + nums[result[2]]
这道题和#15 3Sum思想一致,改变的一点就是使用一个变量存储与target最小的差。这道题只要求输出最近似的一个结果,所以只保存一个最小的差就可以了。
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法