leetcode刷題之路15 三數之和

2022-08-13 05:30:19 字數 760 閱讀 5730

給定乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?找出所有滿足條件且不重複的三元組。

注意:答案中不可以包含重複的三元組。

例如, 給定陣列 nums = [-1, 0, 1, 2, -1, -4],

滿足要求的三元組集合為:

[[-1, 0, 1],

[-1, -1, 2]

]思路:先對vector進行排序,這樣的話如果前兩個數之和大於9,那麼也就可以直接pass了

然後把vector中的數依次放入map中,暴力迴圈,每次計算前兩個數之和,再在map中找到第三個數,存在乙個set中,再把set存在乙個set中,避免重複。

在不重複的情況下把這三個數放入vector中。

#include#include

#include

#include

#include

using

namespace

std;

vector

int>> threesum(vector&nums)

for (int i = 0; i < len; i++)}}

return

ans;

}int

main();

vector

int>> ans =threesum(a);

system(

"pause");

return0;

}

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 剪枝,left和ri...

Evan的LeetCode刷題之路

二 資料庫 以此記錄本人的leetcode刷題之路。題目內容均 於leetcode 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。示例 給定 nums 2...

leetcode刷題之路38 報數

報數序列是乙個整數序列,按照其中的整數的順序進行報數,得到下乙個數。其前五項如下 1.1 2.11 3.21 4.1211 5.111221 1 被讀作 one 1 乙個一 即 11。11 被讀作 two 1s 兩個一 即 21。21 被讀作 one 2 one 1 乙個二 乙個一 即 1211。給...