、
Python3
方法: 排序
class Solution:
def buyChoco(self, prices: List[int], money: int) -> int:
prices.sort()
temp = money - prices[0] - prices[1]
if temp < 0:
return money
else:
return temp
⭐ 方法: 一次遍历
class Solution:
def buyChoco(self, prices: List[int], money: int) -> int:
# 1、 一次遍历 找 最小的前两个数
m1, m2 = inf, inf # 最小的 前两个值 m1 < m2 初始化为 无穷大, 便于 处理 prices[0]
for price in prices:
if price < m1:
m2 = m1
m1 = price
elif price < m2:
m2 = price
temp = money - m1 - m2
if temp < 0:
return money
else:
return temp
C++
⭐ 方法: 一次遍历
class Solution {
public:
int buyChoco(vector<int>& prices, int money) {
int m1 = INT_MAX, m2 = INT_MAX;
for (auto price : prices){
if (price < m1){
m2 = m1;
m1 = price;
}
else if (price < m2){
m2 = price;
}
}
int temp = money - m1 - m2;
if (temp < 0){
return money;
}else{
return temp;
}
}
};