2020-01-20 22:32:28

问题描述:

贪心-Bag of Tokens_解题

问题求解

双指针 + 贪心。

    public int bagOfTokensScore(int[] tokens, int P) {
        Arrays.sort(tokens);
        int res = 0;
        int curr = 0;
        int l = 0;
        int r = tokens.length - 1;
        while (l <= r) {
            if (P >= tokens[l]) {
                curr += 1;
                P -= tokens[l];
                l++;
                res = Math.max(res, curr);
            }
            else if (curr > 0) {
                curr -= 1;
                P += tokens[r];
                r--;
            }
            else break;
        }
        return res;
    }