日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

2043. 简易银行系统

發布時間:2023/11/29 windows 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 。
示例:輸入: ["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]解釋: Bank bank = new Bank([10, 100, 20, 50, 30]); bank.withdraw(3, 10); // 返回 true ,賬戶 3 的余額是 $20 ,所以可以取款 $10 。// 賬戶 3 余額為 $20 - $10 = $10 。 bank.transfer(5, 1, 20); // 返回 true ,賬戶 5 的余額是 $30 ,所以可以轉賬 $20 。// 賬戶 5 的余額為 $30 - $20 = $10 ,賬戶 1 的余額為 $10 + $20 = $30 。 bank.deposit(5, 20); // 返回 true ,可以向賬戶 5 存款 $20 。// 賬戶 5 的余額為 $10 + $20 = $30 。 bank.transfer(3, 4, 15); // 返回 false ,賬戶 3 的當前余額是 $10 。// 所以無法轉賬 $15 。 bank.withdraw(10, 50); // 返回 false ,交易無效,因為賬戶 10 并不存在。

解題思路

維護一個代表用戶余額的數組,對于轉賬,存款,取款操作,我們都需要對參數進行校驗,保證指定的賬戶數量在 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. 简易银行系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。