1 #include2 #include3 #include4view codeusing
namespace
std;
5class
solution ;
10int middle=-1;11
//排序
12sort(nums.begin(), nums.end());
13//
將0進行留乙個處理 並記錄0的個數
14for (int i = 0; i < nums.size(); i++)
20if (nums[i] == 0&&zero[0]!=-1
) 24
if (zero[0] != -1&&zero[2]==num) 27}
28if (zero[2] > 1
) 31
int min = nums.size() - 1;32
//如果0的個數大於2 即有000存在
33if (zero[2] > 2
) );35}
36//
找到負數和正數的臨界點
37for (int i = 0; i < nums.size(); i++) 42}
43//
如果沒有即負數
44if (middle == -1
) 47
//這裡開始遍歷
48for (int i = 0; i < middle; i++)
52int left = i + 1;53
int right = nums.size() - 1;54
while (left
55);
58 cout << left <
59 cout << right <
60while (left1
]) 63
while (left < right && nums[right] == nums[right - 1
]) 66 left = left + 1
;67 right = right - 1;68
}69else
if (nums[i] + nums[left] + nums[right] > 0
) 72
else75}
76}7778
return
three;79}
80};
8182
intmain() ;
85 vectorint>>num=sol.threesum(nums);
86for (int i = 0; i < num.size(); i++)
91 }
1 #include2 #include3 #include4view codeusing
namespace
std;
5class
solution ;
10int middle=-1;11
//排序並
12sort(nums.begin(), nums.end());
13//
將0進行留乙個處理 並記錄0的個數
14for (int i = 0; i < nums.size(); i++)
20if (nums[i] == 0&&zero[0]!=-1
) 24
if (zero[0] != -1&&zero[2]==num) 27}
28if (zero[2] > 1
) 31
//如果0的個數大於2 即有000存在
32if (zero[2] > 2
) );34}
35//
找到中間
36for (int i = 0; i < nums.size(); i++) 41}
42if (middle == -1
) 45
//左遍歷
46for (int i = 0; i < middle; i++)
50for (int j = i+1; j < middle; j++)
54 vector::iterator result =find(nums.begin() + middle, nums.end(), -(nums[i]+nums[j]));
55if (result !=nums.end()) );57}
58}59}
60//
右遍歷61
for (int i = middle; i < nums.size(); i++)
65for (int j = i + 1; j < nums.size(); j++)
69 vector::iterator result = find(nums.begin(), nums.begin() + middle, -(nums[i] +nums[j]));
70if (result != nums.begin() +middle) );72}
73}74}
75return
three;76}
77};
7879
intmain() ;
82 vectorint>>num=sol.threesum(nums);
83for (int i = 0; i < num.size(); i++)
88 }
力扣15 三數之和
給定乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。例如,給定陣列 nums 1,0,1,2,1,4 滿足要求的三元組集合為 1,0,1 1,1,2 題解 這題wa了好多...
力扣 15 三數之和
給你乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c 使得 a b c 0 請你找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。示例 給定陣列 nums 1,0,1,2,1,4 滿足要求的三元組集合為 1,0,1 1,1,2 思路 排序 雙指...
力扣15 三數之和 C
這道題兩個難點。第乙個是不能使用三層迴圈,因為會時間溢位,第二個也是主要的問題如何去重。一開始想要直接排序後去重,但是這樣的話會缺失解,比如這個解就得不到,所以不能直接去重。後來想到了可以判斷nums i 與nums i 1 是否相同,如果相同可以進行i 這樣就可以去重了,但這只是死一次去重,要用不...