Skip to content

Commit af1410f

Browse files
authored
feat: add solutions to lc problem: No.2589 (#927)
1 parent 22d41ea commit af1410f

File tree

3 files changed

+61
-0
lines changed

3 files changed

+61
-0
lines changed

solution/2500-2599/2589.Minimum Time to Complete All Tasks/README.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,28 @@ func findMinimumTime(tasks [][]int) (ans int) {
163163
}
164164
```
165165

166+
### **TypeScript**
167+
168+
```ts
169+
function findMinimumTime(tasks: number[][]): number {
170+
tasks.sort((a, b) => a[1] - b[1]);
171+
const vis = new Array(2010).fill(0);
172+
let ans = 0;
173+
for (let [start, end, duration] of tasks) {
174+
for (let i = start; i <= end; ++i) {
175+
duration -= vis[i];
176+
}
177+
for (let i = end; i >= start && duration > 0; --i) {
178+
if (vis[i] === 0) {
179+
--duration;
180+
ans += vis[i] = 1;
181+
}
182+
}
183+
}
184+
return ans;
185+
}
186+
```
187+
166188
### **...**
167189

168190
```

solution/2500-2599/2589.Minimum Time to Complete All Tasks/README_EN.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,28 @@ func findMinimumTime(tasks [][]int) (ans int) {
143143
}
144144
```
145145

146+
### **TypeScript**
147+
148+
```ts
149+
function findMinimumTime(tasks: number[][]): number {
150+
tasks.sort((a, b) => a[1] - b[1]);
151+
const vis = new Array(2010).fill(0);
152+
let ans = 0;
153+
for (let [start, end, duration] of tasks) {
154+
for (let i = start; i <= end; ++i) {
155+
duration -= vis[i];
156+
}
157+
for (let i = end; i >= start && duration > 0; --i) {
158+
if (vis[i] === 0) {
159+
--duration;
160+
ans += vis[i] = 1;
161+
}
162+
}
163+
}
164+
return ans;
165+
}
166+
```
167+
146168
### **...**
147169

148170
```
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
function findMinimumTime(tasks: number[][]): number {
2+
tasks.sort((a, b) => a[1] - b[1]);
3+
const vis = new Array(2010).fill(0);
4+
let ans = 0;
5+
for (let [start, end, duration] of tasks) {
6+
for (let i = start; i <= end; ++i) {
7+
duration -= vis[i];
8+
}
9+
for (let i = end; i >= start && duration > 0; --i) {
10+
if (vis[i] === 0) {
11+
--duration;
12+
ans += vis[i] = 1;
13+
}
14+
}
15+
}
16+
return ans;
17+
}

0 commit comments

Comments
 (0)