Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit b9fe632

Browse files
committed
feat: add solutions to lc problems
1 parent bfaf051 commit b9fe632

File tree

12 files changed

+159
-2
lines changed

12 files changed

+159
-2
lines changed

‎solution/2200-2299/2214.Minimum Health to Beat Game/README.md‎

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,12 @@
6868

6969
<!-- 这里可写通用的实现逻辑 -->
7070

71+
**方法一:贪心**
72+
73+
我们可以贪心地选择在伤害值最大的回合中使用一次护甲技能,假设伤害值最大为 $mx,ドル那么我们可以免受 $min(mx, armor)$ 的伤害,因此我们需要的最小生命值为 $sum(damage) - min(mx, armor) + 1$。
74+
75+
时间复杂度 $O(n),ドル空间复杂度 $O(1)$。其中 $n$ 为数组 `damage` 的长度。
76+
7177
<!-- tabs:start -->
7278

7379
### **Python3**
@@ -146,7 +152,15 @@ func min(a, b int) int {
146152
### **TypeScript**
147153

148154
```ts
149-
155+
function minimumHealth(damage: number[], armor: number): number {
156+
let s = 0;
157+
let mx = 0;
158+
for (const v of damage) {
159+
mx = Math.max(mx, v);
160+
s += v;
161+
}
162+
return s - Math.min(mx, armor) + 1;
163+
}
150164
```
151165

152166
### **...**

‎solution/2200-2299/2214.Minimum Health to Beat Game/README_EN.md‎

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,15 @@ func min(a, b int) int {
137137
### **TypeScript**
138138

139139
```ts
140-
140+
function minimumHealth(damage: number[], armor: number): number {
141+
let s = 0;
142+
let mx = 0;
143+
for (const v of damage) {
144+
mx = Math.max(mx, v);
145+
s += v;
146+
}
147+
return s - Math.min(mx, armor) + 1;
148+
}
141149
```
142150

143151
### **...**
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
function minimumHealth(damage: number[], armor: number): number {
2+
let s = 0;
3+
let mx = 0;
4+
for (const v of damage) {
5+
mx = Math.max(mx, v);
6+
s += v;
7+
}
8+
return s - Math.min(mx, armor) + 1;
9+
}

‎solution/2500-2599/2549.Count Distinct Numbers on Board/README.md‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,14 @@ func distinctIntegers(n int) int {
111111
}
112112
```
113113

114+
### **TypeScript**
115+
116+
```ts
117+
function distinctIntegers(n: number): number {
118+
return Math.max(1, n - 1);
119+
}
120+
```
121+
114122
### **...**
115123

116124
```

‎solution/2500-2599/2549.Count Distinct Numbers on Board/README_EN.md‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,14 @@ func distinctIntegers(n int) int {
9393
}
9494
```
9595

96+
### **TypeScript**
97+
98+
```ts
99+
function distinctIntegers(n: number): number {
100+
return Math.max(1, n - 1);
101+
}
102+
```
103+
96104
### **...**
97105

98106
```
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
function distinctIntegers(n: number): number {
2+
return Math.max(1, n - 1);
3+
}

‎solution/2500-2599/2550.Count Collisions of Monkeys on a Polygon/README.md‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,27 @@ func qmi(a, k, p int) int {
145145
}
146146
```
147147

148+
### **TypeScript**
149+
150+
```ts
151+
function monkeyMove(n: number): number {
152+
const mod = BigInt(10 ** 9 + 7);
153+
return Number((qmi(2n, n, mod) - 2n + mod) % mod);
154+
}
155+
156+
function qmi(a: bigint, k: number, p: bigint): bigint {
157+
let res = 1n;
158+
while (k) {
159+
if ((k & 1) === 1) {
160+
res = (res * a) % p;
161+
}
162+
k >>= 1;
163+
a = (a * a) % p;
164+
}
165+
return res;
166+
}
167+
```
168+
148169
### **...**
149170

150171
```

‎solution/2500-2599/2550.Count Collisions of Monkeys on a Polygon/README_EN.md‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,27 @@ func qmi(a, k, p int) int {
128128
}
129129
```
130130

131+
### **TypeScript**
132+
133+
```ts
134+
function monkeyMove(n: number): number {
135+
const mod = BigInt(10 ** 9 + 7);
136+
return Number((qmi(2n, n, mod) - 2n + mod) % mod);
137+
}
138+
139+
function qmi(a: bigint, k: number, p: bigint): bigint {
140+
let res = 1n;
141+
while (k) {
142+
if ((k & 1) === 1) {
143+
res = (res * a) % p;
144+
}
145+
k >>= 1;
146+
a = (a * a) % p;
147+
}
148+
return res;
149+
}
150+
```
151+
131152
### **...**
132153

133154
```
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
function monkeyMove(n: number): number {
2+
const mod = BigInt(10 ** 9 + 7);
3+
return Number((qmi(2n, n, mod) - 2n + mod) % mod);
4+
}
5+
6+
function qmi(a: bigint, k: number, p: bigint): bigint {
7+
let res = 1n;
8+
while (k) {
9+
if ((k & 1) === 1) {
10+
res = (res * a) % p;
11+
}
12+
k >>= 1;
13+
a = (a * a) % p;
14+
}
15+
return res;
16+
}

‎solution/2500-2599/2551.Put Marbles in Bags/README.md‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,24 @@ func putMarbles(weights []int, k int) (ans int64) {
136136
}
137137
```
138138

139+
### **TypeScript**
140+
141+
```ts
142+
function putMarbles(weights: number[], k: number): number {
143+
const n = weights.length;
144+
const arr: number[] = [];
145+
for (let i = 0; i < n - 1; ++i) {
146+
arr.push(weights[i] + weights[i + 1]);
147+
}
148+
arr.sort((a, b) => a - b);
149+
let ans = 0;
150+
for (let i = 0; i < k - 1; ++i) {
151+
ans += arr[n - i - 2] - arr[i];
152+
}
153+
return ans;
154+
}
155+
```
156+
139157
### **...**
140158

141159
```

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /