diff --git a/DFS/698.Partition-to-K-Equal-Sum-Subsets/698.Partition-to-K-Equal-Sum-Subsets.cpp b/DFS/698.Partition-to-K-Equal-Sum-Subsets/698.Partition-to-K-Equal-Sum-Subsets_v1.cpp similarity index 100% rename from DFS/698.Partition-to-K-Equal-Sum-Subsets/698.Partition-to-K-Equal-Sum-Subsets.cpp rename to DFS/698.Partition-to-K-Equal-Sum-Subsets/698.Partition-to-K-Equal-Sum-Subsets_v1.cpp diff --git a/DFS/698.Partition-to-K-Equal-Sum-Subsets/698.Partition-to-K-Equal-Sum-Subsets_v2.cpp b/DFS/698.Partition-to-K-Equal-Sum-Subsets/698.Partition-to-K-Equal-Sum-Subsets_v2.cpp new file mode 100644 index 000000000..b3c90ccd8 --- /dev/null +++ b/DFS/698.Partition-to-K-Equal-Sum-Subsets/698.Partition-to-K-Equal-Sum-Subsets_v2.cpp @@ -0,0 +1,25 @@ +class Solution { +public: + bool canPartitionKSubsets(vector& nums, int k) + { + int n = nums.size(); + int sum = accumulate(nums.begin(), nums.end(), 0); + if (sum%k!=0) return false; + int target = sum / k; + + vectordp(1<>i)&1) && (dp[state]+nums[i] <= target)) + dp[state + (1<