leetcode 22-04-16

今日份 leetcode

  • 1423. 可获得的最大点数

1423. 可获得的最大点数

解题思路

先计算出前 k 个数的和,然后再一个个减掉并从后面开始一个个地加,即计算前 k - i 个数加后 i 个数的和,在此过程中比较出最大的和并返回

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// C
int maxScore(int* cardPoints, int cardPointsSize, int k){
int sum = 0;
for(int i = 0; i < k; i++){
sum += cardPoints[i];
}
int res = sum;
for(int i = k - 1; i >= 0; i--){
sum -= cardPoints[i];
sum += cardPoints[cardPointsSize - k + i];
res = res > sum ? res : sum;
}
return res;
}