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 e14f8a8

Browse files
feat: add solutions to lc problems: No.1040
1 parent 3531802 commit e14f8a8

File tree

3 files changed

+67
-0
lines changed

3 files changed

+67
-0
lines changed

‎solution/1000-1099/1040.Moving Stones Until Consecutive II/README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,30 @@ func min(a, b int) int {
176176
}
177177
```
178178

179+
### **TypeScript**
180+
181+
```ts
182+
function numMovesStonesII(stones: number[]): number[] {
183+
stones.sort((a, b) => a - b);
184+
const n = stones.length;
185+
let mi = n;
186+
const mx =
187+
Math.max(stones[n - 1] - stones[1] + 1, stones[n - 2] - stones[0] + 1) -
188+
(n - 1);
189+
for (let i = 0, j = 0; j < n; ++j) {
190+
while (stones[j] - stones[i] + 1 > n) {
191+
++i;
192+
}
193+
if (j - i + 1 === n - 1 && stones[j] - stones[i] === n - 2) {
194+
mi = Math.min(mi, 2);
195+
} else {
196+
mi = Math.min(mi, n - (j - i + 1));
197+
}
198+
}
199+
return [mi, mx];
200+
}
201+
```
202+
179203
### **...**
180204

181205
```

‎solution/1000-1099/1040.Moving Stones Until Consecutive II/README_EN.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,30 @@ func min(a, b int) int {
159159
}
160160
```
161161

162+
### **TypeScript**
163+
164+
```ts
165+
function numMovesStonesII(stones: number[]): number[] {
166+
stones.sort((a, b) => a - b);
167+
const n = stones.length;
168+
let mi = n;
169+
const mx =
170+
Math.max(stones[n - 1] - stones[1] + 1, stones[n - 2] - stones[0] + 1) -
171+
(n - 1);
172+
for (let i = 0, j = 0; j < n; ++j) {
173+
while (stones[j] - stones[i] + 1 > n) {
174+
++i;
175+
}
176+
if (j - i + 1 === n - 1 && stones[j] - stones[i] === n - 2) {
177+
mi = Math.min(mi, 2);
178+
} else {
179+
mi = Math.min(mi, n - (j - i + 1));
180+
}
181+
}
182+
return [mi, mx];
183+
}
184+
```
185+
162186
### **...**
163187

164188
```
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
function numMovesStonesII(stones: number[]): number[] {
2+
stones.sort((a, b) => a - b);
3+
const n = stones.length;
4+
let mi = n;
5+
const mx =
6+
Math.max(stones[n - 1] - stones[1] + 1, stones[n - 2] - stones[0] + 1) -
7+
(n - 1);
8+
for (let i = 0, j = 0; j < n; ++j) {
9+
while (stones[j] - stones[i] + 1 > n) {
10+
++i;
11+
}
12+
if (j - i + 1 === n - 1 && stones[j] - stones[i] === n - 2) {
13+
mi = Math.min(mi, 2);
14+
} else {
15+
mi = Math.min(mi, n - (j - i + 1));
16+
}
17+
}
18+
return [mi, mx];
19+
}

0 commit comments

Comments
(0)

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