题解:
- 先将a,b,c 预处理为 a <= b <= c
- 当a + b <= c 时, 【ac】 和 【bc】 轮流取,直到a 和 b 为0 所以答案为 a + b
- 当a + b > c 时, 设【ac】取k1次, 【bc】取k2次,先将c取完,然后 再【ab】取 直到a为0, 所以答案为 (k1 + k2) + ((a-k1) + (b-k2)) / 2, 因为k1 + k2 = c, 所以 (a + b + c) / 2
class Solution {
public int maximumScore(int a, int b, int c) {
int res = 0;
int[] arr = new int[]{a, b, c};
Arrays.sort(arr);
if (arr[0] + arr[1] <= arr[2]) return arr[1] + arr[0];
else return (arr[0] + arr[1] + arr[2]) / 2;
}
}
按题意暴力模拟,数据范围很小
class Solution {
public int maximumScore(int a, int b, int c) {
int res = 0;
int[] arr = new int[]{a,b,c};
while(true) {
res ++;
Arrays.sort(arr);
arr[2]--;arr[1]--;
if ((arr[0]<=0 && arr[1] <= 0) || (arr[0]<=0 && arr[2] <= 0) ||(arr[2]<=0 && arr[1] <= 0)) break;
}
return res;
}
}
标签:得分,arr,int,k2,k1,移除,1753
From: https://www.cnblogs.com/eiffelzero/p/16996279.html