From 7e74eced2ead9fde8d02bde895a3c0d5f579253f Mon Sep 17 00:00:00 2001 From: MITHILESH Date: Thu, 1 Oct 2020 12:49:46 +0530 Subject: [PATCH] Create 3-Sum.cpp --- cpp/3-Sum.cpp | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 cpp/3-Sum.cpp diff --git a/cpp/3-Sum.cpp b/cpp/3-Sum.cpp new file mode 100644 index 0000000000..1c99b34de1 --- /dev/null +++ b/cpp/3-Sum.cpp @@ -0,0 +1,47 @@ +class Solution { +public: + vector> threeSum(vector& nums) { + + // + vector> res; + //sort + sort(nums.begin(),nums.end()); + + for(unsigned int i = 0; i < nums.size();i++){ + // initialize left and right + //to handle duplicates + if(i > 0 && nums[i]==nums[i-1]) + continue; + int l = i + 1; + int r = nums.size() - 1; + int x = nums[i]; + + while (l < r) + { + if (x + nums[l] + nums[r] == 0) { + res.push_back(vector{x,nums[l],nums[r]}); + //to handle duplicates + while (l