2043. 简易银行系统
生活随笔
收集整理的這篇文章主要介紹了
2043. 简易银行系统
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2043. 簡易銀行系統
你的任務是為一個很受歡迎的銀行設計一款程序,以自動化執行所有傳入的交易(轉賬,存款和取款)。銀行共有 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 。
解題思路
維護一個代表用戶余額的數組,對于轉賬,存款,取款操作,我們都需要對參數進行校驗,保證指定的賬戶數量在 1 和 n 之間,且取款或者轉賬需要的錢的總數 小于或者等于 賬戶余額。對于轉賬來說,可以看成從兩個不同的賬號分別進行取款和存款。
代碼
class Bank {long[] balance;public Bank(long[] balance) {this.balance=balance;}public boolean transfer(int account1, int account2, long money) {if (!withdraw(account1,money))return false;if (!deposit(account2,money)){deposit(account1,money);return false;}return true;}public boolean deposit(int account, long money) {if (account-1<0||account-1>=balance.length)return false;balance[account-1]+=money;return true;}public boolean withdraw(int account, long money) {if (account-1<0||account-1>=balance.length)return false;if (money>balance[account-1])return false;balance[account-1]-=money;return true;}}/*** Your Bank object will be instantiated and called as such:* Bank obj = new Bank(balance);* boolean param_1 = obj.transfer(account1,account2,money);* boolean param_2 = obj.deposit(account,money);* boolean param_3 = obj.withdraw(account,money);*//*** Your Bank object will be instantiated and called as such:* Bank obj = new Bank(balance);* boolean param_1 = obj.transfer(account1,account2,money);* boolean param_2 = obj.deposit(account,money);* boolean param_3 = obj.withdraw(account,money);*/總結
以上是生活随笔為你收集整理的2043. 简易银行系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 同事梦到我离职是怎么回事
- 下一篇: 升级android 6.0系统