leetcode hot100——三数之和
给你一个整数数组nums判断是否存在三元组[nums[i], nums[j], nums[k]]满足i ! j、i ! k且j ! k同时还满足nums[i] nums[j] nums[k] 0。请你返回所有和为0且不重复的三元组。class Solution { public: vectorvectorint threeSum(vectorint nums) { sort(nums.begin(),nums.end()); vectorvectorint res; if(nums.size () 3) return res; for(int i 0; i nums.size() - 2; i) { if(nums[i] 0) break; // 排序后第一个数大于0后面必大于0 if(i 0 nums[i] nums[i - 1]) // 遇到第一个重复的数 continue; int j i 1, k nums.size() - 1; while(j k) { int sum nums[i] nums[j] nums[k]; if(sum 0) { res.push_back({nums[i],nums[j],nums[k]}); // 答案要求不重复 while(j k nums[j 1] nums[j]) j; // 去重 while(j k nums[k - 1] nums[k]) k--; } if(sum 0) j; else k--; } } return res; } };