Cho danh sách giá xe prices và ngân sách k. Tìm số xe tối đa có thể mua.
Ví dụ: prices = [80, 20, 10, 30, 80], k = 85 → 3 (mua 3 xe giá 20, 10, 30? Wait: 20+10+30=60, still have 25, but next cheapest is 80. So 3 cars.)
Các bước giải quyết
- Sắp xếp
pricestăng dần - Duyệt giá từ nhỏ đến lớn:
- Nếu
price <= k:k -= price,count += 1 - Ngược lại: dừng lại
- Nếu
- Trả về
count
Ví dụ mã Python
class Solution:
def solve(self, prices, k):
count = 0
prices.sort()
for i in range(len(prices)):
if prices[i] <= k:
k -= prices[i]
count += 1
else:
break
return count
ob = Solution()
p = [80, 20, 10, 30, 80]
print(ob.solve(p, 85))
Đầu vào
[80, 20, 10, 30, 80], 85
Đầu ra
3