Skip to content

Commit b5bf8fe

Browse files
committed
update 4Sum.cpp
1 parent 6d88131 commit b5bf8fe

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

4Sum.cpp

+21-1
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,21 @@ class Solution {
1111

1212
void coreKSum(vector<int>& nums, int target, int k, vector<int> numArray, int begin, vector<vector<int>>& result)
1313
{
14+
int sum = 0;
15+
for (int i = 0; i < k; ++i)
16+
{
17+
sum += nums[begin + i];
18+
}
19+
if (sum > target)
20+
return;
21+
1422
if (k == 2)
1523
{
1624
int end = nums.size() - 1;
25+
sum = 0;
1726
while (begin < end)
1827
{
19-
int sum = nums[begin] + nums[end];
28+
sum = nums[begin] + nums[end];
2029
if (sum == target)
2130
{
2231
vector<int> tmp(numArray);
@@ -44,6 +53,17 @@ class Solution {
4453
numArray.push_back(0);
4554
for(int i = begin; i <= nums.size() - k;)
4655
{
56+
sum = nums[i];
57+
for (int j = 1; j < k; ++j)
58+
{
59+
sum += nums[nums.size() - j];
60+
}
61+
if (sum < target)
62+
{
63+
++i;
64+
while (i <= nums.size() - k && nums[i] == nums[i - 1]) ++i;
65+
continue;
66+
}
4767
numArray.pop_back();
4868
numArray.push_back(nums[i]);
4969
coreKSum(nums, target - nums[i], k - 1, numArray, i + 1, result);

0 commit comments

Comments
 (0)