LeetCode-015-三數(shù)之和

題目描述:給你一個包含 n 個整數(shù)的數(shù)組 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?請你找出所有和為 0 且不重復(fù)的三元組。
注意:答案中不可以包含重復(fù)的三元組。
示例說明請見LeetCode官網(wǎng)。
來源:力扣(LeetCode) ??
鏈接:https://leetcode-cn.com/problems/3sum/ ??
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
首先將數(shù)組nums排序,然后通過三重遍歷,獲取符合條件三元組,中間需要把重復(fù)的通過判斷過濾掉。
解法二:雙指針法
描述首先也是將nums排序,然后第一層遍歷和第一種方法一樣,獲取第一個數(shù)字的索引first,然后第二個數(shù)字索引second和第三個數(shù)字索引third分別從first之后的數(shù)組中,從左至右獲取符合條件的數(shù)字,直到second不小于third為止。
第二種方法比第一種方法少一層循環(huán),所以效率高得多。
標(biāo)簽: