跳到主要内容

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