2144. Minimum Cost of Buying Candies With Discount

2144. Minimum Cost of Buying Candies With Discount #

题目 #

  • 一家商店正在打折销售糖果。每购买 两个 糖果,商店会 免费 送一个糖果。
  • 免费送的糖果唯一的限制是:它的价格需要小于等于购买的两个糖果价格的 较小值
    • 比方说,总共有 4 个糖果,价格分别为 1234 ,一位顾客买了价格为 23 的糖果,那么他可以免费获得价格为 1 的糖果,但不能获得价格为 4 的糖果。
  • 给你一个下标从 0 开始的整数数组 cost ,其中 cost[i] 表示第 i 个糖果的价格,请你返回获得 所有 糖果的 最小 总开销。

思路 #

模拟 #

代码 #

模拟 #

class Solution {
    public int minimumCost(int[] cost) {
        int ans = 0;
        Arrays.sort(cost);
        int ptr = cost.length - 1;
        while (ptr >= 0) {
            ans += cost[ptr];
            if (ptr-1 >= 0) ans += cost[ptr-1];
            ptr -= 3;
        }
        return ans;
    }
}

致谢 #

int_64