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

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

3Sum Closest

2019-11-06 09:23:24
字體:
供稿:網(wǎng)友

leetcode第16題,和3sum題類似,但是思路很不一樣,要求在數(shù)組中找出三個數(shù),使得三個數(shù)的和最接近目標數(shù)。

這道題最明顯的解法是雙指針法,主要思路是,先對數(shù)組排序,之后從頭開始遍歷,遍歷過程中使用雙指針,一個指向開頭,一個指向結(jié)尾,三個數(shù)加和,求取和目標數(shù)的差距,如果差距為正,說明加和過大,應(yīng)該向小的方向調(diào)整,所以end指針應(yīng)該向左移動,同理,如果差距小于0,start指針向右移動,因為數(shù)組已經(jīng)有序,這樣移動肯定可以滿足調(diào)整的要求。

注意合適使用abs,只有在衡量差距與最小差距的相對大小時候,才使用abs。

def threeSumClosest(self, nums, target): nums.sort() n = len(nums) minNum = 9999999 for i in range(n): start = i+1 end = n-1 while start < end: tmp = nums[i]+nums[start]+nums[end]-target if abs(tmp) < abs(minNum): minNum = tmp if minNum == 0: return target elif tmp < 0: start += 1 elif tmp > 0: end -= 1 return minNum+target
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 沾化县| 唐海县| 沽源县| 九龙坡区| 汽车| 丘北县| 延边| 永春县| 井研县| 颍上县| 崇文区| 巴东县| 丹凤县| 深泽县| 赞皇县| 拜城县| 庆城县| 汤原县| 通州区| 阳谷县| 新平| 漳浦县| 永善县| 洪泽县| 饶阳县| 娄底市| 万盛区| 甘泉县| 宜丰县| 云霄县| 泊头市| 桃园市| 昌吉市| 永丰县| 利辛县| 宜良县| 新营市| 广西| 比如县| 邵阳县| 陆川县|