diff --git a/3sum b/3sum new file mode 100644 index 00000000..22f4567e --- /dev/null +++ b/3sum @@ -0,0 +1,35 @@ +class Solution { +public: + vector> threeSum(vector& nums) { + vector> answer; + + int left=0; + int right=nums.size()-1; + sort(nums.begin(), nums.end()); + + for (int i=0;i0 && nums[i] == nums[i-1]) + continue; + left = i+1; + right = nums.size()-1; + while (left < right) { + int sum = nums[i]+nums[left]+nums[right]; + if (sum == 0) { + answer.push_back({nums[i], nums[left], nums[right]}); + left++; + right--; + while (left& height) { + int left=0; + int right=height.size()-1; + int maxi = 0; + int currArea = 0; + while (left < right) { + currArea = min(height[left], height[right])*(right-left); + maxi = max(currArea, maxi); + + if (height[left] < height[right]) { + left++; + } else { + right--; + } + } + return maxi; + } +};