Skip to content

Commit 5fc155e

Browse files
authored
feat: add typescript solution to lc problem: No.0837 (#666)
No.0837.New 21 Game
1 parent 05b7030 commit 5fc155e

File tree

3 files changed

+46
-0
lines changed

3 files changed

+46
-0
lines changed

solution/0800-0899/0837.New 21 Game/README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,23 @@
6565

6666
```
6767

68+
### **TypeScript**
69+
70+
```ts
71+
function new21Game(n: number, k: number, maxPts: number): number {
72+
if (!k) return 1.0;
73+
let dp = new Array(k + maxPts).fill(0.0);
74+
for (let i = k; i <= n && i < k + maxPts; i++) {
75+
dp[i] = 1.0;
76+
}
77+
dp[k - 1] = 1.0 * Math.min(n - k + 1, maxPts) / maxPts;
78+
for (let i = k - 2; i >= 0; i--) {
79+
dp[i] = dp[i + 1] - (dp[i + maxPts + 1] - dp[i + 1]) / maxPts;
80+
}
81+
return dp[0];
82+
};
83+
```
84+
6885
### **...**
6986

7087
```

solution/0800-0899/0837.New 21 Game/README_EN.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,23 @@ In 6 out of W = 10 possibilities, she is at or below N = 6 points.
6969

7070
```
7171

72+
### **TypeScript**
73+
74+
```ts
75+
function new21Game(n: number, k: number, maxPts: number): number {
76+
if (!k) return 1.0;
77+
let dp = new Array(k + maxPts).fill(0.0);
78+
for (let i = k; i <= n && i < k + maxPts; i++) {
79+
dp[i] = 1.0;
80+
}
81+
dp[k - 1] = 1.0 * Math.min(n - k + 1, maxPts) / maxPts;
82+
for (let i = k - 2; i >= 0; i--) {
83+
dp[i] = dp[i + 1] - (dp[i + maxPts + 1] - dp[i + 1]) / maxPts;
84+
}
85+
return dp[0];
86+
};
87+
```
88+
7289
### **...**
7390

7491
```
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
function new21Game(n: number, k: number, maxPts: number): number {
2+
if (!k) return 1.0;
3+
let dp = new Array(k + maxPts).fill(0.0);
4+
for (let i = k; i <= n && i < k + maxPts; i++) {
5+
dp[i] = 1.0;
6+
}
7+
dp[k - 1] = 1.0 * Math.min(n - k + 1, maxPts) / maxPts;
8+
for (let i = k - 2; i >= 0; i--) {
9+
dp[i] = dp[i + 1] - (dp[i + maxPts + 1] - dp[i + 1]) / maxPts;
10+
}
11+
return dp[0];
12+
};

0 commit comments

Comments
 (0)