-
Notifications
You must be signed in to change notification settings - Fork 19
Expand file tree
/
Copy pathsolution.java
More file actions
53 lines (47 loc) · 1.45 KB
/
Copy pathsolution.java
File metadata and controls
53 lines (47 loc) · 1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/**
* Simple Bank System - Java
*/
class Bank {
private long[] bal; // 0-indexed balances
private boolean valid(int account) {
return account >= 1 && account <= bal.length;
}
public Bank(long[] balance) {
// copy for safety (optional), or assign directly
this.bal = new long[balance.length];
System.arraycopy(balance, 0, this.bal, 0, balance.length);
}
public boolean transfer(int account1, int account2, long money) {
if (!valid(account1) || !valid(account2))
return false;
int a = account1 - 1;
int b = account2 - 1;
if (bal[a] < money)
return false;
bal[a] -= money;
bal[b] += money;
return true;
}
public boolean deposit(int account, long money) {
if (!valid(account))
return false;
bal[account - 1] += money;
return true;
}
public boolean withdraw(int account, long money) {
if (!valid(account))
return false;
int a = account - 1;
if (bal[a] < money)
return false;
bal[a] -= 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);
*/