一、题目

二、思路(自己)

  • 这道题跟前天的那个设计链表的题目相似,都是自己设计一个类,不过那个要难挺多,因为要求要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. Mybatis获取插入记录的自增长ID
  2. Runtime-消息发送和消息转发
  3. 算法学习:最近公共祖先
  4. 为什么在生产中进行调试是如此诱人?
  5. 【渝粤题库】国家开放大学2021春2626药事管理与法规题目
  6. 大前端最强vscode教程(基础篇)
  7. 【转】oracle数据库NUMBER数据类型
  8. 218.94.78.76:20001/index.php,详解spring中使用Elasticsearch的实例教程
  9. 均衡器算法_必须像算法一样对算法进行仔细调整。 怎么样? 算法均衡器
  10. Qt 21行实现 十六进制字符串互转QByteArray QString Hex互转QByteArray
  11. opencv摄像头捕获视频
  12. 【Adobe Premiere Pro 2020】ps图稿导出到pr创建运动图形、pr音频录制与音频效果使用说明、pr导出为mp4格式及参数设置说明【包含其他几种常见格式】、pr去水印的4种方法说明
  13. #先进先出#每批次采购价格不同,计算期末库存成本
  14. 今天开始开发竞争情报系统了,在这里做个记录
  15. 一元三次方程重根判别式_一元三次方程的判别式和求根公式是什么?
  16. java移动业务大厅案例_基于Java的SOSO移动大厅项目(功能全部实现了)
  17. XIII Open Cup named after E.V. Pankratiev. GP of Saratov
  18. 数据分析 --- 收集数据的技巧
  19. A beginning Flags
  20. 八数码问题-8puzzle

热门文章

  1. Windows 批量创建用户
  2. 嵌入式端音频开发(基础篇)之2021-2022年国内主流语音识别芯片科普(1)
  3. 大疆Phantom 4 RTK 通过4G SIM卡来控制飞机
  4. 硬件设计之电容充放电计算
  5. 自动升降压5-40V多串超级电容充电芯片和解决方案
  6. 显卡测试(具体步骤)
  7. 企业微信自建应用通过PHP进行收发消息
  8. 简单密码/华为机试(C/C++)
  9. 成都java开发好找工作吗?
  10. python-3d绘图包VPython