首页 > 其他分享 >1753. 移除石子的最大得分

1753. 移除石子的最大得分

时间:2022-12-21 15:01:28浏览次数:55  
标签:得分 arr int k2 k1 移除 1753

1753. 移除石子的最大得分

题解:

  1. 先将a,b,c 预处理为 a <= b <= c
  2. 当a + b <= c 时, 【ac】 和 【bc】 轮流取,直到a 和 b 为0 所以答案为 a + b
  3. 当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

相关文章