Skip to content

Commit 3ca031c

Browse files
committed
feat: add solutions to lc problem: No.0860
No.0860.Lemonade Change
1 parent 5c1cbd7 commit 3ca031c

File tree

4 files changed

+188
-0
lines changed

4 files changed

+188
-0
lines changed

solution/0800-0899/0860.Lemonade Change/README.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,72 @@ class Solution {
112112
}
113113
```
114114

115+
### **TypeScript**
116+
117+
```ts
118+
function lemonadeChange(bills: number[]): boolean {
119+
let five = 0;
120+
let ten = 0;
121+
for (let bill of bills) {
122+
switch (bill) {
123+
case 5:
124+
five++;
125+
break;
126+
case 10:
127+
five--;
128+
ten++;
129+
break;
130+
case 20:
131+
if (ten !== 0) {
132+
ten -= 1;
133+
bill -= 10;
134+
}
135+
five -= bill / 5 - 1;
136+
break;
137+
}
138+
139+
if (five < 0) {
140+
return false;
141+
}
142+
}
143+
return true;
144+
}
145+
```
146+
147+
### **Rust**
148+
149+
```rust
150+
impl Solution {
151+
pub fn lemonade_change(bills: Vec<i32>) -> bool {
152+
let (mut five, mut ten) = (0, 0);
153+
for bill in bills.iter() {
154+
match bill {
155+
5 => {
156+
five += 1;
157+
}
158+
10 => {
159+
five -= 1;
160+
ten += 1;
161+
}
162+
_ => {
163+
if ten != 0 {
164+
ten -= 1;
165+
five -= 1;
166+
} else {
167+
five -= 3;
168+
}
169+
}
170+
}
171+
172+
if five < 0 {
173+
return false;
174+
}
175+
}
176+
true
177+
}
178+
}
179+
```
180+
115181
### **...**
116182

117183
```

solution/0800-0899/0860.Lemonade Change/README_EN.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,72 @@ class Solution {
100100
}
101101
```
102102

103+
### **TypeScript**
104+
105+
```ts
106+
function lemonadeChange(bills: number[]): boolean {
107+
let five = 0;
108+
let ten = 0;
109+
for (let bill of bills) {
110+
switch (bill) {
111+
case 5:
112+
five++;
113+
break;
114+
case 10:
115+
five--;
116+
ten++;
117+
break;
118+
case 20:
119+
if (ten !== 0) {
120+
ten -= 1;
121+
bill -= 10;
122+
}
123+
five -= bill / 5 - 1;
124+
break;
125+
}
126+
127+
if (five < 0) {
128+
return false;
129+
}
130+
}
131+
return true;
132+
}
133+
```
134+
135+
### **Rust**
136+
137+
```rust
138+
impl Solution {
139+
pub fn lemonade_change(bills: Vec<i32>) -> bool {
140+
let (mut five, mut ten) = (0, 0);
141+
for bill in bills.iter() {
142+
match bill {
143+
5 => {
144+
five += 1;
145+
}
146+
10 => {
147+
five -= 1;
148+
ten += 1;
149+
}
150+
_ => {
151+
if ten != 0 {
152+
ten -= 1;
153+
five -= 1;
154+
} else {
155+
five -= 3;
156+
}
157+
}
158+
}
159+
160+
if five < 0 {
161+
return false;
162+
}
163+
}
164+
true
165+
}
166+
}
167+
```
168+
103169
### **...**
104170

105171
```
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
impl Solution {
2+
pub fn lemonade_change(bills: Vec<i32>) -> bool {
3+
let (mut five, mut ten) = (0, 0);
4+
for bill in bills.iter() {
5+
match bill {
6+
5 => {
7+
five += 1;
8+
}
9+
10 => {
10+
five -= 1;
11+
ten += 1;
12+
}
13+
_ => {
14+
if ten != 0 {
15+
ten -= 1;
16+
five -= 1;
17+
} else {
18+
five -= 3;
19+
}
20+
}
21+
}
22+
23+
if five < 0 {
24+
return false;
25+
}
26+
}
27+
true
28+
}
29+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
function lemonadeChange(bills: number[]): boolean {
2+
let five = 0;
3+
let ten = 0;
4+
for (let bill of bills) {
5+
switch (bill) {
6+
case 5:
7+
five++;
8+
break;
9+
case 10:
10+
five--;
11+
ten++;
12+
break;
13+
case 20:
14+
if (ten !== 0) {
15+
ten -= 1;
16+
bill -= 10;
17+
}
18+
five -= bill / 5 - 1;
19+
break;
20+
}
21+
22+
if (five < 0) {
23+
return false;
24+
}
25+
}
26+
return true;
27+
}

0 commit comments

Comments
 (0)