Skip to content

Commit fd4206c

Browse files
authored
Update 2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps_v1.cpp
1 parent 29dbdd7 commit fd4206c

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

Binary_Search/2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps/2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps_v1.cpp

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,8 @@ class Solution {
1212
}
1313

1414
int ret = 0;
15-
int mid = upper_bound(pos.begin(), pos.end(), startPos) - pos.begin();
16-
int j = n-1;
17-
for (int i=mid-1; i>=0; i--)
18-
{
19-
while (pos[j]>=startPos && startPos-pos[i]+(pos[j]-startPos)*2 > k)
20-
j--;
21-
if (pos[j]>=startPos) ret = max(ret, presum[j] - (i==0?0:presum[i-1]));
22-
else if (startPos-pos[i] <= k) ret = max(ret, presum[j] - (i==0?0:presum[i-1]));
23-
}
2415

25-
mid = lower_bound(pos.begin(), pos.end(), startPos) - pos.begin();
16+
int mid = lower_bound(pos.begin(), pos.end(), startPos) - pos.begin();
2617
j = 0;
2718
for (int i=mid; i<n; i++)
2819
{
@@ -31,6 +22,18 @@ class Solution {
3122
if (pos[j]<=startPos) ret = max(ret, presum[i] - (j==0?0:presum[j-1]));
3223
else if (pos[i]-startPos <= k) ret = max(ret, presum[i] - (j==0?0:presum[j-1]));
3324
}
25+
26+
mid = upper_bound(pos.begin(), pos.end(), startPos) - pos.begin();
27+
int j = n-1;
28+
for (int i=mid-1; i>=0; i--)
29+
{
30+
while (pos[j]>=startPos && startPos-pos[i]+(pos[j]-startPos)*2 > k)
31+
j--;
32+
if (pos[j]>=startPos) ret = max(ret, presum[j] - (i==0?0:presum[i-1]));
33+
else if (startPos-pos[i] <= k) ret = max(ret, presum[j] - (i==0?0:presum[i-1]));
34+
}
35+
36+
3437

3538
return ret;
3639
}

0 commit comments

Comments
 (0)