Skip to content

Commit 786a49a

Browse files
authored
Added C++ solution for 4 and 15 (#90)
* Create _461.cpp * refactor 461 * Create _15.cpp * Create _4.cpp * Update README.md added c++ solution for 4 and 15
1 parent 6787312 commit 786a49a

File tree

3 files changed

+60
-2
lines changed

3 files changed

+60
-2
lines changed

Diff for: README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -969,7 +969,7 @@ _If you like this project, please leave me a star._ ★
969969
|18|[4 Sum](https://leetcode.com/problems/4sum/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_18.java)||Medium|Two Pointers
970970
|17|[Letter Combinations of a Phone Number](https://leetcode.com/problems/letter-combinations-of-a-phone-number/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_17.java)||Medium|Backtracking
971971
|16|[3Sum Closest](https://leetcode.com/problems/3sum-closest/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_16.java)||Medium|Two Pointers
972-
|15|[3Sum](https://leetcode.com/problems/3sum/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_15.java)|[:tv:](https://www.youtube.com/watch?v=jeim_j8VdiM)|Medium|Two Pointers, Binary Search
972+
|15|[3Sum](https://leetcode.com/problems/3sum/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_15.java), [C++](../master/cpp/_15.cpp)|[:tv:](https://www.youtube.com/watch?v=jeim_j8VdiM)|Medium|Two Pointers, Binary Search
973973
|14|[Longest Common Prefix](https://leetcode.com/problems/longest-common-prefix/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_14.java)| [:tv:](https://www.youtube.com/watch?v=K1ps6d7YCy4)| Easy
974974
|13|[Roman to Integer](https://leetcode.com/problems/roman-to-integer)|[Solution](../master/src/main/java/com/fishercoder/solutions/_13.java)| |Easy | Math, String
975975
|12|[Integer to Roman](https://leetcode.com/problems/integer-to-roman/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_12.java)||Medium| Math, String
@@ -980,7 +980,7 @@ _If you like this project, please leave me a star._ ★
980980
|7|[Reverse Integer](https://leetcode.com/problems/reverse-integer/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_7.java) | [:tv:](https://youtu.be/tm1Yrb_SfBM) |Easy |
981981
|6|[ZigZag Conversion](https://leetcode.com/problems/zigzag-conversion/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_6.java) | |Easy |
982982
|5|[Longest Palindromic Substring](https://leetcode.com/problems/longest-palindromic-substring/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_5.java) | |Medium|
983-
|4|[Median of Two Sorted Arrays](https://leetcode.com/problems/median-of-two-sorted-arrays/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_4.java) | |Hard | Divide and Conquer
983+
|4|[Median of Two Sorted Arrays](https://leetcode.com/problems/median-of-two-sorted-arrays/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_4.java), [C++](../master/cpp/_4.cpp) | |Hard | Divide and Conquer
984984
|3|[Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest-substring-without-repeating-characters/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_3.java) | |Medium | HashMap, Sliding Window
985985
|2|[Add Two Numbers](https://leetcode.com/problems/add-two-numbers/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_2.java) | |Medium | LinkedList
986986
|1|[Two Sum](https://leetcode.com/problems/two-sum/)|[Java](../master/src/main/java/com/fishercoder/solutions/_1.java), [C++](../master/cpp/_1.cpp), [Javascript](../master/javascript/_1.js)|[:tv:](https://www.youtube.com/watch?v=kPXOr6pW8KM&t=)|Easy| HashMap

Diff for: cpp/_15.cpp

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
class Solution {
2+
public:
3+
vector<vector<int>> threeSum(vector<int>& nums) {
4+
sort(nums.begin(),nums.end());
5+
6+
vector<vector<int>> v;
7+
8+
if(nums.size()<3){
9+
//if vector nums has less than 3 elements, impossible to distribute into 3 element set -> return 0.
10+
return v;
11+
}
12+
13+
for(int i=0;i<nums.size();i++){
14+
15+
if(i>0 and nums[i]==nums[i-1]){
16+
//same elements dont have to be taken.
17+
continue;
18+
}
19+
20+
int l = i+1, r = nums.size()-1;
21+
//Using 2-pointer concept
22+
while(l<r){
23+
int sum = nums[i] + nums[l] + nums[r];
24+
if(sum>0){
25+
r--;
26+
}else if(sum<0){
27+
l++;
28+
}else{
29+
v.push_back(vector<int> {nums[i],nums[l],nums[r]});
30+
while(l<r and nums[l]==nums[l+1]) l++;
31+
while(l<r and nums[r]==nums[r-1]) r--;
32+
l++; r--;
33+
}
34+
}
35+
36+
}
37+
38+
return v;
39+
}
40+
};

Diff for: cpp/_4.cpp

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class Solution {
2+
public:
3+
double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
4+
//for adding second vector to last of first vector
5+
nums1.insert(nums1.end(),nums2.begin(),nums2.end());
6+
sort(nums1.begin(),nums1.end());
7+
8+
int size = nums1.size();
9+
float sum = nums1[size/2];
10+
11+
if(size%2==0){
12+
sum += nums1[(size/2)-1];
13+
sum/=2;
14+
}
15+
16+
return (float)(sum);
17+
}
18+
};

0 commit comments

Comments
 (0)