class Solution { public: vector> threeSum(vector& nums) { sort(nums.begin(),nums.end()); vector> v; if(nums.size()<3){ //if vector nums has less than 3 elements, impossible to distribute into 3 element set -> return 0. return v; } for(int i=0;i0 and nums[i]==nums[i-1]){ //same elements dont have to be taken. continue; } int l = i+1, r = nums.size()-1; //Using 2-pointer concept while(l0){ r--; }else if(sum<0){ l++; }else{ v.push_back(vector {nums[i],nums[l],nums[r]}); while(l