Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit a26b9cc

Browse files
authored
Add C++ Solution for 698 (fishercoder1534#79)
* Create _698.cpp * refactor 698
1 parent 7f87bfb commit a26b9cc

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ _If you like this project, please leave me a star._ ★
350350
|701|[Insert into a Binary Search Tree](https://leetcode.com/problems/insert-into-a-binary-search-tree/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_701.java) | |Medium | DFS, recursion
351351
|700|[Search in a Binary Search Tree](https://leetcode.com/problems/search-in-a-binary-search-tree/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_700.java) | |Easy| recusion, dfs
352352
|699|[Falling Squares](https://leetcode.com/problems/falling-squares/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_699.java) ||Hard | Segment Tree
353-
|698|[Partition to K Equal Sum Subsets](https://leetcode.com/problems/partition-to-k-equal-sum-subsets/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_698.java) | |Medium | Backtracking
353+
|698|[Partition to K Equal Sum Subsets](https://leetcode.com/problems/partition-to-k-equal-sum-subsets/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_698.java), [C++](../master/cpp/_698.cpp) | |Medium | Backtracking + DP
354354
|697|[Degree of an Array](https://leetcode.com/problems/degree-of-an-array/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_697.java) ||Easy |
355355
|696|[Count Binary Substrings](https://leetcode.com/problems/count-binary-substrings/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_696.java) | |Easy |
356356
|695|[Max Area of Island](https://leetcode.com/problems/max-area-of-island/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_695.java) | |Easy | DFS

cpp/_698.cpp

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
//Partition to K Equal Sum Subsets
2+
3+
class Solution {
4+
public:
5+
6+
bool dfs(vector<int> &nums, vector<int> visited, int idx,int k,int currSum,int targetSum){
7+
if(k==1){
8+
//All subsets are found
9+
return true;
10+
}
11+
if(currSum==targetSum){
12+
//one subset found
13+
return dfs(nums,visited,0,k-1,0,targetSum);
14+
}
15+
for(int i=idx;i<nums.size();i++){
16+
if(!visited[i]){
17+
visited[i]=true;
18+
if(dfs(nums,visited,i+1,k,currSum+nums[i],targetSum)){
19+
return true;
20+
}
21+
visited[i]=false;
22+
}
23+
}
24+
return false;
25+
}
26+
bool canPartitionKSubsets(vector<int>& nums, int k) {
27+
vector<int> visited(nums.size(),false);
28+
int sum=0;
29+
for(int i=0;i<nums.size();i++){
30+
sum += nums[i];
31+
}
32+
if(sum%k!=0){
33+
return false;
34+
}
35+
return dfs(nums,visited,0,k,0,sum/k);
36+
}
37+
};

0 commit comments

Comments
 (0)