Skip to content

Commit 2e94324

Browse files
authored
Add C++ Solution for 416 (#78)
* Create _416.cpp * refactor 416
1 parent bbf9e2d commit 2e94324

File tree

2 files changed

+43
-1
lines changed

2 files changed

+43
-1
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -580,7 +580,7 @@ _If you like this project, please leave me a star._ ★
580580
|419|[Battleships in a Board](https://leetcode.com/problems/battleships-in-a-board/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_419.java) | |Medium| DFS
581581
|418|[Sentence Screen Fitting](https://leetcode.com/problems/sentence-screen-fitting/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_418.java) | |Medium|
582582
|417|[Pacific Atlantic Water Flow](https://leetcode.com/problems/pacific-atlantic-water-flow/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_417.java) | |Medium| DFS
583-
|416|[Partition Equal Subset Sum](https://leetcode.com/problems/partition-equal-subset-sum/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_416.java)| |Medium | DP
583+
|416|[Partition Equal Subset Sum](https://leetcode.com/problems/partition-equal-subset-sum/)|[Java](../master/src/main/java/com/fishercoder/solutions/_416.java), [C++](../master/cpp/_416.cpp)| |Medium | DP
584584
|415|[Add Strings](https://leetcode.com/problems/add-strings/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_415.java)| |Easy|
585585
|414|[Third Maximum Number](https://leetcode.com/problems/third-maximum-number/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_414.java)| |Easy|
586586
|413|[Arithmetic Slices](https://leetcode.com/problems/arithmetic-slices/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_413.java) | |Medium| DP

cpp/_416.cpp

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
//416. Partition Equal Subset Sum
2+
3+
class Solution {
4+
public:
5+
//maximum size top-down dp table
6+
bool dp[201][20001];
7+
8+
bool equalPart(vector<int>& arr,int size,int sum){
9+
for(int i=0;i<=size;i++){
10+
dp[i][0]=true;
11+
}
12+
for(int i=1;i<=sum;i++){
13+
dp[0][i]=false;
14+
}
15+
16+
for(int i=1;i<=size;i++){
17+
for(int j=1;j<=sum;j++){
18+
19+
if(arr[i-1]<=j){
20+
dp[i][j] = dp[i-1][j] || dp[i-1][j-arr[i-1]];
21+
}else{
22+
dp[i][j] = dp[i-1][j];
23+
}
24+
25+
}
26+
}
27+
28+
return dp[size][sum];
29+
}
30+
31+
bool canPartition(vector<int>& nums) {
32+
int sum=0;
33+
for(int i=0;i<nums.size();i++){
34+
sum+=nums[i];
35+
}
36+
if(sum%2!=0){
37+
return false;
38+
}else{
39+
return equalPart(nums,nums.size(),sum/2);
40+
}
41+
}
42+
};

0 commit comments

Comments
 (0)