力扣3数之和

javascript 复制代码
class Solution {
public:
	vector<vector<int>> threeSum(vector<int>& nums) {
		vector<vector<int>> vecNum;

		sort(nums.begin(), nums.end());

		if (nums[0] > 0 || nums.size() < 3)
		{
			return vecNum;
		}

		int i = 0;
		int k = 0;
		int j = 0;

		for (int nIndex = 0; nIndex < nums.size() - 2; nIndex++)
		{
			if (nIndex != 0)
			{
				// 索引i的去重处理
				if (nums[i] == nums[nIndex])
				{
					continue;
				}
			}

			i = nIndex;
			k = nIndex + 1;
			j = nums.size() - 1;

			if (nums[i] <= 0)
			{
				while (i != j && j != k && i != j && k < j)
				{
					int num = nums[i] + nums[k] + nums[j];
					if (num > 0)
					{
						
						j--;
					}
					else if (num < 0)
					{
						k++;
					}
					else
					{
						// 只有只和等于0的时候才进行去重处理
						vecNum.push_back({ nums[i], nums[k], nums[j] });
						// 索引j的去重处理
						while (1)
						{
							j--;

							if (j <= k || nums[j] != nums[j + 1])
							{
								break;
							}
						}

						// 索引k的去重处理
						while (1)
						{
							k++;

							if (k >= j || nums[k] != nums[k - 1]  )
							{
								break;
							}
						}
					}
				}
			}
		}

		return vecNum;
	}
};
相关推荐
有梦想的骇客5 小时前
书籍将正方形矩阵顺时针转动90°(8)0605
线性代数·算法·矩阵
有梦想的骇客5 小时前
书籍“之“字形打印矩阵(8)0609
java·算法·矩阵
Chenyu_3106 小时前
12.找到字符串中所有字母异位词
c语言·数据结构·算法·哈希算法
苏三福6 小时前
yolo11-seg ultralytics 部署版本
算法·yolo11
wuqingshun3141599 小时前
蓝桥杯 冶炼金属
算法·职场和发展·蓝桥杯
jndingxin10 小时前
OpenCV CUDA模块光流计算-----实现Farneback光流算法的类cv::cuda::FarnebackOpticalFlow
人工智能·opencv·算法
编程绿豆侠10 小时前
力扣HOT100之栈:394. 字符串解码
java·算法·leetcode
朝朝又沐沐11 小时前
基于算法竞赛的c++编程(18)string类细节问题
开发语言·c++·算法
记得早睡~11 小时前
leetcode73-矩阵置零
数据结构·leetcode·矩阵