Skip to content

Commit e5643c8

Browse files
authored
feat: add typescript solution to lc problem: No.0983 (doocs#667)
No.0983.Minimum Cost For Tickets
1 parent ea843b3 commit e5643c8

File tree

3 files changed

+46
-0
lines changed

3 files changed

+46
-0
lines changed

solution/0900-0999/0983.Minimum Cost For Tickets/README.md

+17
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,23 @@
7979

8080
```
8181

82+
### **TypeScript**
83+
84+
```ts
85+
function mincostTickets(days: number[], costs: number[]): number {
86+
const n = days.length, m = days[n - 1] + 1;
87+
const [a, b, c] = costs;
88+
let dp = new Array(m).fill(0);
89+
for (let i = 1; i < m; i++) {
90+
let x = days.includes(i) ? (dp[i - 1] + a) : dp[i - 1];
91+
let y = (i > 7 ? dp[i - 7] : dp[0]) + b;
92+
let z = (i > 30 ? dp[i - 30] : dp[0]) + c;
93+
dp[i] = Math.min(x, y, z);
94+
}
95+
return dp[m - 1];
96+
};
97+
```
98+
8299
### **...**
83100

84101
```

solution/0900-0999/0983.Minimum Cost For Tickets/README_EN.md

+17
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,23 @@ In total you spent $17 and covered all the days of your travel.
9494

9595
```
9696

97+
### **TypeScript**
98+
99+
```ts
100+
function mincostTickets(days: number[], costs: number[]): number {
101+
const n = days.length, m = days[n - 1] + 1;
102+
const [a, b, c] = costs;
103+
let dp = new Array(m).fill(0);
104+
for (let i = 1; i < m; i++) {
105+
let x = days.includes(i) ? (dp[i - 1] + a) : dp[i - 1];
106+
let y = (i > 7 ? dp[i - 7] : dp[0]) + b;
107+
let z = (i > 30 ? dp[i - 30] : dp[0]) + c;
108+
dp[i] = Math.min(x, y, z);
109+
}
110+
return dp[m - 1];
111+
};
112+
```
113+
97114
### **...**
98115

99116
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
function mincostTickets(days: number[], costs: number[]): number {
2+
const n = days.length, m = days[n - 1] + 1;
3+
const [a, b, c] = costs;
4+
let dp = new Array(m).fill(0);
5+
for (let i = 1; i < m; i++) {
6+
let x = days.includes(i) ? (dp[i - 1] + a) : dp[i - 1];
7+
let y = (i > 7 ? dp[i - 7] : dp[0]) + b;
8+
let z = (i > 30 ? dp[i - 30] : dp[0]) + c;
9+
dp[i] = Math.min(x, y, z);
10+
}
11+
return dp[m - 1];
12+
};

0 commit comments

Comments
 (0)