leetcode 1753. 移除石子的最大得分

111 阅读1分钟

c++

class Solution {
public:
    int maximumScore(int a, int b, int c) {
        if (a > c) swap(a, c);
        if (a > b) swap(a, b);
        if (b > c) swap(b, c);
        int ans = 0;
        int cnt1 = min(a, c - b);
        a -= cnt1, c -= cnt1, ans += cnt1;
        if (a) {
            if (a % 2) a -= 1;
            b -= a / 2;
            c -= a / 2;
            ans += a;
        }
        ans += b;
        return ans;
    }
};

js

var maximumScore = function(a, b, c) {
    if (a > c) [a, c] = [c, a];
    if (a > b) [a, b] = [b, a];
    if (b > c) [b, c] = [c, b];
    var cnt1 = Math.min(a, c - b);
    var ans = 0;
    ans += cnt1, a -= cnt1, c -= cnt1;
    if (a) {
        if (a % 2) a -= 1;
        ans += a;
        b -= a / 2;
        c -= a / 2;
    }
    ans += b;
    return ans;
};