搞事情疯狂翻车的第三天

试图解决问题失败,复制进去并融合了点其他的东西进来

vector<vector<int> > threeSum(vector<int> &num) 
	{
    
    
 		vector<vector<int> > vt;
        if(num.size() < 3)
            return vt;
		sort(num.begin(), num.end());
        if(num[0] > 0)
            return vt;
		int k=num.size()-1;
		int num1 = 0;
		vector<int> t(3);
		for (int i = 0;i < k-1; )
		{
    
    
            if(num[i] > 0)
                return vt;
			num1 = -num[i];
			t[0] = num[i];
			for (int j = i + 1, k=num.size()-1; j < k;)
			{
    
    
				if (num[j] + num[k] == num1)
				{
    
    
					t[1] = num[j++];
					t[2] = num[k--];
					vt.push_back(t);
					while (j<k && num[j] == num[j-1]) j++;
					while (j<k && num[k] == num[k+1]) k--;
				}
				else if (num[j] + num[k] < num1) j++;
				else k--;
			}
			i++;
			while (i<k-1 && num[i] == num[i-1]) i++;
		}
		return vt;
	}

明天再试试…改改我自己的代码…

猜你喜欢

转载自blog.csdn.net/AgaSS1225/article/details/112498404