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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

LeetCode中等题之简易银行系统

發布時間:2023/11/28 生活经验 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode中等题之简易银行系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目

你的任務是為一個很受歡迎的銀行設計一款程序,以自動化執行所有傳入的交易(轉賬,存款和取款)。銀行共有 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 并不存在。
提示:
n == balance.length
1 <= n, account, account1, account2 <= 10^5
0 <= balance[i], money <= 10^12
transfer, deposit, withdraw 三個函數,每個 最多調用 10^4 次
來源:力扣(LeetCode)

解題思路

??這道題如果按照難度劃分的話,我覺得應該放在簡單題里。題目比較簡單只需要做好相應的模擬即可,注意賬戶是否存在,賬戶里的錢是否夠用。

class Bank:def __init__(self, balance: List[int]):self.balance=balanceself.n=len(balance)def transfer(self, account1: int, account2: int, money: int) -> bool:if 0<=account1-1<self.n and 0<=account2-1<self.n:if self.balance[account1-1]>=money:self.balance[account1-1]-=moneyself.balance[account2-1]+=money return Truereturn Falsereturn Falsedef deposit(self, account: int, money: int) -> bool:if 0<=account-1<self.n:self.balance[account-1]+=moneyreturn Truereturn Falsedef withdraw(self, account: int, money: int) -> bool:if 0<=account-1<self.n and self.balance[account-1]>=money:self.balance[account-1]-=moneyreturn Truereturn False# Your Bank object will be instantiated and called as such:
# obj = Bank(balance)
# param_1 = obj.transfer(account1,account2,money)
# param_2 = obj.deposit(account,money)
# param_3 = obj.withdraw(account,money)

總結

以上是生活随笔為你收集整理的LeetCode中等题之简易银行系统的全部內容,希望文章能夠幫你解決所遇到的問題。

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