Tema: Tres de la cantidad de y
enlaces título original: (https://leetcode-cn.com/problems/3sum/)
Por supuesto, el método de la violencia no es decir, se pretendía originalmente un doble puntero, pero se olvidó de determinar los programas duplicados; además de una determinación de repetición después de que el programa de código, una variedad de error de límites de la matriz, encontrar la idea de hermano mayor en las "explicaciones" y encontró que la idea es casi el mismo, pero el autor es una variedad de error:
(primero publicado esta pregunta una historia trágica)
Al final, solo brilla el código de "solución de problemas" en los peces gordos dados "paso a paso" en un "código de la gente":
class Solution {
public:
vector<vector<int>> threeSum(vector<int>& nums) {
sort(nums.begin(), nums.end());
vector<vector<int>> ans;
int n = nums.size();
if(n < 3) return ans;
for(int i = 0; i < n - 2; i++)
{
if(i == 0 || (i > 0 && nums[i] != nums[i - 1]))
{
int L = i + 1, R = n - 1;
while(L < R)
{
if(nums[i] + nums[L] + nums[R] == 0)
{
if(L == i + 1 || nums[L] != nums[L - 1])
{
vector<int> v;
v.push_back(nums[i]);
v.push_back(nums[L]);
v.push_back(nums[R]);
ans.push_back(v);
}
L++;
R--;
}
else if(nums[i] + nums[L] + nums[R] < 0)
{
L++;
}
else
{
R--;
}
}
}
}
return ans;
}
};
digresión:
Sufrir dos tipos, uno que te hace fuerte, el otro es inútil, simplemente invitando tormento
- "castillo de naipes"