【Leetcode刷题第一天】2043. 简易银行系统[JAVA] 一起来刷题吧~
题目描述:
你的任务是为一个很受欢迎的银行设计一款程序,以自动化执行所有传入的交易(转账,存款和取款)。银行共有 n 个账户,编号从 1 到 n 。每个账号的初始余额存储在一个下标从 0 开始的整数数组 balance 中,其中第 (i + 1) 个账户的初始余额是 balance[i] 。
请你执行所有 有效的 交易。如果满足下面全部条件,则交易有效 :
- 指定的账户数量在 1 和 n 之间,且
- 取款或者转账需要的钱的总数 小于或者等于 账户余额。
实现 Bank 类:
- Bank(long[] balance)
使用下标从 0 开始的整数数组 balance 初始化该对象。 - boolean transfer(int account1, int account2, long money)
从编号为 account1的账户向编号为 account2 的账户转帐 money 美元。如果交易成功,返回 true ,否则,返回 false - boolean deposit(int account, long money)
向编号为 account 的账户存款 money美元。如果交易成功,返回 true ;否则,返回 false 。 - boolean withdraw(int account, long money)
从编号为 account 的账户取款 money 美元。如果交易成功,返回 true ;否则,返回 false 。
示例:
输入:
[“Bank”, “withdraw”, “transfer”, “deposit”, “transfer”, “withdraw”]
[[[10, 100, 20, 50, 30]], [3, 10], [5, 1, 20], [5, 20], [3, 4, 15], [10, 50]]
输出:
[null, true, true, true, false, false]
来源:力扣(LeetCode)
class Bank {
long[] balance;
int n;
public Bank(long[] balance) {
this.balance=balance;
n=balance.length;
}
public boolean transfer(int account1, int account2, long money) {
if(account1>n||account2>n)
return false;
if(balance[account1-1]<money){
return false;
}
balance[account1-1]-=money;
balance[account2-1]+=money;
return true;
}
public boolean deposit(int account, long money) {
if(account>n)
return false;
balance[account-1]+=money;
return true;
}
public boolean withdraw(int account, long money) {
if(account>n||balance[account-1]<money){
return false;
}
balance[account-1]-=money;
return true;
}
}
总结:这道题目在leetcode上是中等的程度,但我觉得还是比较简单的一道题~ 大家一起加油刷题吧~