leetcode15 三數之和

2021-09-27 13:32:42 字數 640 閱讀 4624

利用雙指標

先排序設定三個指標k,i,j,其中k是最左邊的數,i是k+1,j位nums的最右邊,

規律:如果三個數的和大了,就將j往後移一位,如果小了,就把i往左移一位,證明不會漏解

每次位移如果碰到和前乙個相同的就直接跳過,在位移乙個

vectorint>> v;

sort

(nums.

begin()

, nums.

end())

;for

(int k =

0; k <((

int)nums.

size()

)-2; k++)if

(k>

0&& nums[k]

== nums[k -1]

)int i = k +1;

int j = nums.

size()

-1;while

(i < j)

if(nums[k]

+ nums[i]

+ nums[j]

>0)

if(nums[k]

+ nums[i]

+ nums[j]

<0)

}}return v;

LeetCode 15 三數之和

15.給定乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組 方法一,個人解法正確,但是效率太低,時間複雜度o n 3 時間超時,無法提交至leetcode public s...

leetcode 15 三數之和

給定乙個包含 n 個整數的陣列nums,判斷nums中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。例如,給定陣列 nums 1,0,1,2,1,4 滿足要求的三元組集合為 1,0,1 1,1,2 class solutio...

leetcode15 三數之和

給定乙個包含 n 個整數的陣列nums,判斷nums中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。例如,給定陣列 nums 1,0,1,2,1,4 滿足要求的三元組集合為 1,0,1 1,1,2 先找兩數之和,然後再用un...