2706. 购买两块巧克力
难度: 简单
题目大意:
- 给定一个数组,每一个数表示每个巧克力的价格
- 问如果有
money
这么多的钱,能不能以最小的成本买到两个巧克力 - 如果可以返回剩余的钱,否则就返回
money
提示:
2 <= prices.length <= 50
1 <= prices[i] <= 100
1 <= money <= 100
排序
要求成本最小,我们可以先排序一下,然后取最前面两个值
代码实现
class Solution {
public:
int buyChoco(vector<int>& prices, int money) {
if (prices.size() < 2) return money;
sort(prices.begin(), prices.end());
if (prices[0] + prices[1] > money) {
return money;
}
return money - prices[0] - prices[1];
}
};
python3
class Solution:
def buyChoco(self, prices: List[int], money: int) -> int:
prices.sort()
if prices[0] + prices[1] <= money :
money -= prices[0] + prices[1]
return money
时间复杂度: O ( n l o g n ) O(nlogn) O(nlogn)