2241.设计一个ATM机器
链接:2241.设计一个ATM机器
难度:Medium
标签:贪心、设计、数组
简介:请你实现 ATM 类。
题解 1 - python
- 编辑时间:2025-01-05
- 执行用时:23ms
- 内存消耗:20.02MB
- 编程语言:python
- 解法介绍:记录数量后从大到小取值
class ATM:
    def __init__(self):
        self.map = [20, 50, 100, 200, 500]
        self.data = [0] * 5
    def deposit(self, banknotesCount: List[int]) -> None:
        for i in range(5): self.data[i] += banknotesCount[i]
    def withdraw(self, amount: int) -> List[int]:
        newData = list(self.data)
        res = [0] * 5
        for i in range(4, -1, -1):
            if newData[i] == 0: continue
            cmax = min(amount // self.map[i], newData[i])
            newData[i] -= cmax
            res[i] += cmax
            amount -= cmax * self.map[i]
        if amount != 0: return [-1]
        self.data = newData
        return res