一、题目

二、思路(自己)

  • 这道题跟前天的那个设计链表的题目相似,都是自己设计一个类,不过那个要难挺多,因为要求要O(1)的时间复杂度。
  • 挺简单的,就比详述自己的一些思路啥的,就普通设计类,也没有涉及多线程。
class Bank {List<Long> list= new ArrayList<>();int count;public Bank(long[] balance) {for(long l:balance){list.add(l);}count=balance.length;}public boolean transfer(int account1, int account2, long money) {if(account1>count||account2>count||list.get(account1-1)<money) return false;list.set(account1-1,list.get(account1-1)-money);list.set(account2-1,list.get(account2-1)+money);return true;}public boolean deposit(int account, long money) {if(account>count) return false;else {list.set(account-1,list.get(account-1)+money);return true;}}public boolean withdraw(int account, long money) {if(account>count||money>list.get(account-1)) return false;else {list.set(account-1,list.get(account-1)-money);return true;}}
}
  • 不过值得提一嘴的是,在判断转账的时候,应该要把账户输入的合理性放在判断钱够不够之前,否则会造成数组越界,这是我第一次提交时候的疏忽!

三、题解(官方)

官方代码贴一下,听简单的

class Bank {long[] balance;public Bank(long[] balance) {this.balance = balance;}public boolean transfer(int account1, int account2, long money) {if (account1 > balance.length || account2 > balance.length || 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 > balance.length) {return false;}balance[account - 1] += money;return true;}public boolean withdraw(int account, long money) {if (account > balance.length || balance[account - 1] < money) {return false;}balance[account - 1] -= money;return true;}
}

D17 LeetCode 2043.简易银行系统(中等)相关推荐

  1. 2043. 简易银行系统

    2043. 简易银行系统 你的任务是为一个很受欢迎的银行设计一款程序,以自动化执行所有传入的交易(转账,存款和取款).银行共有 n 个账户,编号从 1 到 n .每个账号的初始余额存储在一个下标从 0 ...

  2. 用C语言设计简易银行系统

    简易银行系统 此银行系统基于C语言,实现了开卡.读卡.转账.存钱.取钱.存文档.都文档以及密码三次输入机会等基本功能.比较简单,容易理解,适合新手学习.(所用软件:DEV-C++) 1. 实现账户用链 ...

  3. LeetCode中等题之简易银行系统

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

  4. LeetCode hot-100 简单and中等难度,61-70.

    207. 课程表 难度中等520 你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 . 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成 ...

  5. LeetCode hot-100 简单and中等难度,81-90.

    打家劫舍系列题 198. 打家劫舍 难度简单1005收藏分享切换为英文关注反馈 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防 ...

  6. LeetCode hot-100 简单and中等难度,71-80.

    279. 完全平方数 难度中等538收藏分享切换为英文关注反馈 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n.你需要让组成和的完全平方数的个数最少 ...

  7. LeetCode hot-100 简单and中等难度,91-100.

    461. 汉明距离 难度简单307收藏分享切换为英文关注反馈 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目. 给出两个整数 x 和 y,计算它们之间的汉明距离. 注意: 0 ≤ ...

  8. LeetCode hot-100 简单and中等难度,51-60.

    142. 环形链表 II 难度中等570收藏分享切换为英文关注反馈 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示 ...

  9. LeetCode hot-100 简单and中等难度,41-50.

    102. 二叉树的层序遍历 难度中等589收藏分享切换为英文关注反馈 给你一个二叉树,请你返回其按 层序遍历 得到的节点值. (即逐层地,从左到右访问所有节点). 示例: 二叉树:[3,9,20,nu ...

最新文章

  1. 通过Windows DShow获取设备名、支持的编解码及视频size列表实现
  2. python硬件驱动_Python学习:计算机基础之计算机硬件
  3. 关于解决安装pwndbg问题sys.stderr.write(f“ERROR: {exc}“) /usr/bin/python3.5: No module named ensurepip
  4. 服务器能否只做c盘系统,我的云服务器只有一个c盘
  5. 关于JavaScript的数组随机排序
  6. 5008.vs2015创建c++动态库
  7. Python学习---基础函数的学习
  8. c++ 返回引用_【Excel必知必会】引用(链接)小专题
  9. 高性能javascript读书笔记(三.DOM 编程2)
  10. Unity接入百度语音识别WebAPI
  11. Linux和window写python,搭建Python环境(window和linux)
  12. GPG软件签名与验证
  13. 惠普bios硬重置_惠普BIOS密码重置工具|惠普笔记本BIOS密码重置工具 - 万方软件下载站...
  14. [乐意黎原创]PHP 老司机指南
  15. 自定义阿里云OSS图片大小
  16. vue-事件修饰符-详解(.prevent .stop .once .capture .self)
  17. 电子商务正在形成共同体经济
  18. html 消息滚动,以HTML实现消息滚动
  19. 输入账号 密码 实现登录功能
  20. 文本输出API函数:TextOut,ExtTextOut,DrawText,DrawTextEx,PolyTextOut,TabbedTextOut

热门文章

  1. 在cmd命令行如何输入文件路径
  2. 【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览
  3. mysql 查询最接近某时间的数据
  4. 【ML】评估一个分类器:精确率和召回率(Evaluation of Classifier)
  5. 健身管理软件,管理更高效更简单
  6. 乐迪(RadioLink)Mini Pix组装六旋翼无人机疑难杂症解决1——只有4个电机转
  7. 在线客服系统解决方案:时尚(服饰美妆)行业
  8. CC1101和CC1120的区别
  9. Kaggle比赛----入门指导
  10. python商业爬虫培训