国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

[Leetcode] 16. 3Sum Closest

2019-11-11 06:01:44
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

PRoblem:

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.

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).

思路: 這道題與前一道15題3Sum是相似的,直接用3Sum里提到的那兩種方法之一皆可。唯一不同的是還需要一個(gè)統(tǒng)計(jì)參數(shù)sum來(lái)記錄最接近target值的三個(gè)數(shù)和,然后每一次循環(huán)需要比較當(dāng)前三個(gè)數(shù)的和tmpsum與統(tǒng)計(jì)參數(shù)sum到target的絕對(duì)值,借此更新統(tǒng)計(jì)參數(shù)sum。

Solution:

class Solution(object): def threeSumClosest(self, nums, target): """ :type nums: List[int] :type target: int :rtype: int """ ressum = 0 delta = 0 nums.sort() numslen = len(nums) if numslen < 3: return ressum else: ressum = nums[0]+nums[1]+nums[2] delta = abs(target - ressum) i = 0 for i in xrange(0,numslen-2): indexi = i+1 indexj = numslen-1 while indexi < indexj: tmp = target - nums[i] - nums[indexi] - nums[indexj] if abs(tmp) < delta: delta = abs(tmp) ressum = target - tmp if tmp > 0 : indexi += 1 elif tmp < 0: indexj -= 1 else: break return ressum
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 安泽县| 康马县| 余姚市| 和政县| 双鸭山市| 泌阳县| 泗阳县| 新晃| 灵川县| 铜陵市| 高碑店市| 新绛县| 永嘉县| 绥阳县| 丹寨县| 文山县| 南雄市| 莆田市| 南江县| 永城市| 祁门县| 那坡县| 孝昌县| 嘉义市| 莒南县| 行唐县| 江川县| 新民市| 郓城县| 双辽市| 旌德县| 奈曼旗| 黑龙江省| 开化县| 宜兴市| 清涧县| 淳化县| 花莲县| 吴江市| 德惠市| 自贡市|