【Leetcode刷题第一天】2043. 简易银行系统[JAVA]

【Leetcode刷题第一天】2043. 简易银行系统[JAVA] 一起来刷题吧~

题目描述:
你的任务是为一个很受欢迎的银行设计一款程序,以自动化执行所有传入的交易(转账,存款和取款)。银行共有 n 个账户,编号从 1 到 n 。每个账号的初始余额存储在一个下标从 0 开始的整数数组 balance 中,其中第 (i + 1) 个账户的初始余额是 balance[i] 。

请你执行所有 有效的 交易。如果满足下面全部条件,则交易有效

  1. 指定的账户数量在 1 和 n 之间,且
  2. 取款或者转账需要的钱的总数 小于或者等于 账户余额。

实现 Bank 类:

  1. Bank(long[] balance)
    使用下标从 0 开始的整数数组 balance 初始化该对象。
  2. boolean transfer(int account1, int account2, long money)
    从编号为 account1的账户向编号为 account2 的账户转帐 money 美元。如果交易成功,返回 true ,否则,返回 false
  3. boolean deposit(int account, long money)
    向编号为 account 的账户存款 money美元。如果交易成功,返回 true ;否则,返回 false 。
  4. 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上是中等的程度,但我觉得还是比较简单的一道题~ 大家一起加油刷题吧~

猜你喜欢

转载自blog.csdn.net/m0_52338896/article/details/123587911