国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 藁城市| 天祝| 淅川县| 贵南县| 成武县| 颍上县| 永清县| 射阳县| 兴仁县| 巨野县| 项城市| 永吉县| 上林县| 云霄县| 贡嘎县| 嵊州市| 南皮县| 海安县| 亳州市| 嘉善县| 滦平县| 大洼县| 永德县| 昭通市| 安溪县| 嘉黎县| 洪湖市| 饶河县| 汽车| 云安县| 巴里| 广平县| 高雄县| 大关县| 富民县| 巴中市| 建德市| 元氏县| 水富县| 隆尧县| 凤阳县|