【Leetcode】2241. 筹划一个 ATM 呆板

[复制链接]
发表于 2025-11-13 22:09:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
标题

标题链接
一个 ATM 呆板,存有 5 种面值的钞票:20 ,50 ,100 ,200 和 500 美元。初始时,ATM 机是空的。用户可以用它存大概取恣意数目标钱。
取款时,呆板会优先取 较大 数额的钱。
比方说,你想取 $300 ,而且呆板里有 2 张 $50 的钞票,1 张 $100 的钞票和1 张 $200 的钞票,那么呆板会取出 $100 和 $200 的钞票。
但是,如果你想取 $600 ,呆板里有 3 张 $200 的钞票和1 张 $500 的钞票,那么取款哀求会被拒绝,由于呆板会先取出 $500 的钞票,然后无法取出剩余的 $100 。留意,由于有 $500 钞票的存在,呆板 不能 取 $200 的钞票。
请你实现 ATM 类:
ATM() 初始化 ATM 对象。
void deposit(int[] banknotesCount) 分别存入 $20 ,$50,$100,$200 和 $500 钞票的数目。
int[] withdraw(int amount) 返回一个长度为 5 的数组,分别表现 $20 ,$50,$100 ,$200 和 $500 钞票的数目,而且更新 ATM 机里取款后钞票的剩余数目。如果无法取出指定命额的钱,请返回 [-1] (这种环境下 不 取出任何钞票)。
示例 1:
   输入: [“ATM”, “deposit”, “withdraw”, “deposit”, “withdraw”, “withdraw”]
[[], [[0,0,1,2,1]], [600], [[0,1,0,1,1]], [600], [550]] 输出: [null,
null, [0,0,1,0,1], null, [-1], [0,1,0,0,1]]
  表明: ATM atm = new ATM(); atm.deposit([0,0,1,2,1]); // 存入 1 张 $100 ,2 张
$200 和 1 张 $500 的钞票。 atm.withdraw(600); // 返回 [0,0,1,0,1] 。呆板返回
1 张 $100 和 1 张 $500 的钞票。呆板里剩余钞票的数目为 [0,0,0,2,0] 。
atm.deposit([0,1,0,1,1]); // 存入 1 张 $50 ,1 张 $200 和 1 张 $500 的钞票。
// 呆板中剩余钞票数目为 [0,1,0,3,1] 。 atm.withdraw(600); // 返回 [-1] 。呆板会实验取出 $500 的钞票,然后无法得到剩余的 $100
,以是取款哀求会被拒绝。
// 由于哀求被拒绝,呆板中钞票的数目不会发生改变。 atm.withdraw(550); // 返回 [0,1,0,0,1] ,呆板会返回 1 张 $50 的钞票和 1 张
$500 的钞票。
  提示:
      
  • b a n k n o t e s C o u n t . l e n g t h = = 5 banknotesCount.length == 5 banknotesCount.
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表