Skip to content

Commit 6d4b64d

Browse files
authored
Improved task 1423.
1 parent ad53cb2 commit 6d4b64d

File tree

2 files changed

+15
-15
lines changed

2 files changed

+15
-15
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2177,7 +2177,7 @@ implementation 'com.github.javadev:leetcode-in-java:1.10'
21772177
| 1431 |[Kids With the Greatest Number of Candies](src.save/main/java/g1401_1500/s1431_kids_with_the_greatest_number_of_candies/Solution.java)| Easy | Array | 1 | 84.43
21782178
| 1425 |[Constrained Subsequence Sum](src.save/main/java/g1401_1500/s1425_constrained_subsequence_sum/Solution.java)| Hard | Array, Dynamic_Programming, Heap_Priority_Queue, Sliding_Window, Queue, Monotonic_Queue | 69 | 30.52
21792179
| 1424 |[Diagonal Traverse II](src.save/main/java/g1401_1500/s1424_diagonal_traverse_ii/Solution.java)| Medium | Array, Sorting, Heap_Priority_Queue | 39 | 85.56
2180-
| 1423 |[Maximum Points You Can Obtain from Cards](src.save/main/java/g1401_1500/s1423_maximum_points_you_can_obtain_from_cards/Solution.java)| Medium | Array, Prefix_Sum, Sliding_Window | 4 | 31.70
2180+
| 1423 |[Maximum Points You Can Obtain from Cards](src.save/main/java/g1401_1500/s1423_maximum_points_you_can_obtain_from_cards/Solution.java)| Medium | Array, Prefix_Sum, Sliding_Window | 2 | 94.06
21812181
| 1422 |[Maximum Score After Splitting a String](src.save/main/java/g1401_1500/s1422_maximum_score_after_splitting_a_string/Solution.java)| Easy | String | 1 | 96.45
21822182
| 1420 |[Build Array Where You Can Find The Maximum Exactly K Comparisons](src.save/main/java/g1401_1500/s1420_build_array_where_you_can_find_the_maximum_exactly_k_comparisons/Solution.java)| Hard | Dynamic_Programming | 22 | 86.32
21832183
| 1419 |[Minimum Number of Frogs Croaking](src.save/main/java/g1401_1500/s1419_minimum_number_of_frogs_croaking/Solution.java)| Medium | String, Counting | 19 | 32.16
Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
package g1401_1500.s1423_maximum_points_you_can_obtain_from_cards;
22

3-
// #Medium #Array #Prefix_Sum #Sliding_Window #2022_03_28_Time_4_ms_(31.70%)_Space_65.6_MB_(39.85%)
3+
// #Medium #Array #Prefix_Sum #Sliding_Window #2022_06_26_Time_2_ms_(94.06%)_Space_51_MB_(86.63%)
44

55
public class Solution {
66
public int maxScore(int[] cardPoints, int k) {
7-
int maxScore = 0;
8-
if (cardPoints.length <= k) {
9-
for (int point : cardPoints) {
10-
maxScore += point;
11-
}
12-
return maxScore;
13-
}
7+
int currSum = 0;
8+
int maxSum = 0;
149
for (int i = 0; i < k; i++) {
15-
maxScore += cardPoints[i];
10+
currSum += cardPoints[i];
11+
}
12+
if (k == cardPoints.length) {
13+
return currSum;
1614
}
17-
int runningSum = maxScore;
18-
for (int i = cardPoints.length - 1, j = 1; i >= 0 && j <= k; i--, j++) {
19-
runningSum = runningSum - cardPoints[k - j] + cardPoints[i];
20-
maxScore = Math.max(maxScore, runningSum);
15+
maxSum = currSum;
16+
int r = cardPoints.length - 1;
17+
while (r >= cardPoints.length - k) {
18+
currSum += cardPoints[r] - cardPoints[k + r - cardPoints.length];
19+
maxSum = Math.max(currSum, maxSum);
20+
r--;
2121
}
22-
return maxScore;
22+
return maxSum;
2323
}
2424
}

0 commit comments

Comments
 (0)