成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

LeetCode如何解決三數(shù)之和問題

這篇文章主要介紹LeetCode如何解決三數(shù)之和問題,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)建站專注于灤平網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供灤平營(yíng)銷型網(wǎng)站建設(shè),灤平網(wǎng)站制作、灤平網(wǎng)頁設(shè)計(jì)、灤平網(wǎng)站官網(wǎng)定制、小程序設(shè)計(jì)服務(wù),打造灤平網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供灤平網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

1

 題目描述

給定一個(gè)整數(shù)數(shù)組nums,判斷nums中是否存在三個(gè)元素 a,b,c ,使得 a + b + c = 0 。如不存在返回[],如存在返回所有滿足條件且不重復(fù)的答案。如:輸入[-1,0,1,2,-1,-4]返回[[-1,0,-1],[-1,-1,2]],如輸入[-3,3],返回[]。

2

 解題

本題需有兩點(diǎn)預(yù)判:1、當(dāng)數(shù)組長(zhǎng)度小于3時(shí),直接輸出[];2、對(duì)數(shù)組首先進(jìn)行排序,如當(dāng)前數(shù)字與前一個(gè)相同,所得結(jié)果也將一致,直接跳過即可。

思路一:哈希表

本題要找到滿足條件的三個(gè)元素,當(dāng)固定第一個(gè)元素a,則題目轉(zhuǎn)化成找到b、c使得和為-a的問題,即與LeetCode刷題DAY 8:兩數(shù)之和中問題一致,因此也可用哈希表的方法解決。

class Solution:    def threeSum(self, nums: List[int]) -> List[List[int]]:        if len(nums)<3:            return []        nums = sorted(nums)        a = list()        for i in range(len(nums)-2):            if i>0 and nums[i]==nums[i-1]:                continue            h_map = {}            target = -nums[i]            for j in range(i+1,len(nums)):                if target - nums[j] in h_map:                    a.append(sorted([nums[i],nums[j],target-nums[j]]))                h_map[nums[j]]=j        return list(set([tuple(t) for t in a]))

思路二:雙指針

當(dāng)對(duì)數(shù)組完成排序并固定第一個(gè)元素a,則題目與LeetCode刷題DAY 9:兩數(shù)之和II中問題一致,可用雙指針方法解決。

class Solution:    def threeSum(self, nums: List[int]) -> List[List[int]]:        if len(nums)<3:            return []        nums = sorted(nums)        a = list()        for i in range(len(nums)-2):            if i>0 and nums[i]==nums[i-1]:                continue            x = i+1            y = len(nums)-1            target = -nums[i]            while x<y:                if nums[x]+nums[y] == target:                    a.append(sorted([nums[i],nums[x],nums[y]]))                    x += 1                elif nums[x]+nums[y] < target :                    x += 1                else:                    y -= 1        return list(set([tuple(t) for t in a])

以上是“LeetCode如何解決三數(shù)之和問題”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)站標(biāo)題:LeetCode如何解決三數(shù)之和問題
鏈接分享:http://jinyejixie.com/article32/pgissc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、網(wǎng)站內(nèi)鏈、品牌網(wǎng)站制作、網(wǎng)站設(shè)計(jì)公司、企業(yè)建站面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
松原市| 柳州市| 依兰县| 繁昌县| 梁平县| 大厂| 孝义市| 临澧县| 天全县| 长沙市| 鄱阳县| 静乐县| 潍坊市| 和顺县| 惠州市| 南京市| 普兰县| 镇江市| 道孚县| 交口县| 中方县| 秦皇岛市| 四子王旗| 盐亭县| 通道| 长宁区| 龙州县| 丰台区| 五莲县| 壤塘县| 乌鲁木齐县| 紫金县| 咸宁市| 揭阳市| 寻乌县| 大余县| 马鞍山市| 广丰县| 德惠市| 灌云县| 库尔勒市|