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 c238c6b

Browse files
feat: add solutions to lc problem: No.2383 (doocs#3538)
No.2383.Minimum Hours of Training to Win a Competition
1 parent ff04023 commit c238c6b

File tree

15 files changed

+267
-711
lines changed

15 files changed

+267
-711
lines changed

‎solution/2300-2399/2383.Minimum Hours of Training to Win a Competition/README.md‎

Lines changed: 89 additions & 259 deletions
Large diffs are not rendered by default.

‎solution/2300-2399/2383.Minimum Hours of Training to Win a Competition/README_EN.md‎

Lines changed: 93 additions & 249 deletions
Large diffs are not rendered by default.
Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
1-
int minNumberOfHours(int initialEnergy, int initialExperience, int* energy, int energySize, int* experience, int experienceSize) {
2-
int res = 0;
3-
for (int i = 0; i < energySize; i++) {
4-
if (initialEnergy <= energy[i]) {
5-
res += energy[i] - initialEnergy + 1;
6-
initialEnergy = energy[i] + 1;
1+
int minNumberOfHours(int x, int y, int* energy, int energySize, int* experience, int experienceSize) {
2+
int ans = 0;
3+
for (int i = 0; i < energySize; ++i) {
4+
int dx = energy[i], dy = experience[i];
5+
if (x <= dx) {
6+
ans += dx + 1 - x;
7+
x = dx + 1;
78
}
8-
if (initialExperience <= experience[i]) {
9-
res += experience[i] -initialExperience+ 1;
10-
initialExperience = experience[i] + 1;
9+
if (y <= dy) {
10+
ans += dy+ 1-y;
11+
y = dy + 1;
1112
}
12-
initialEnergy -= energy[i];
13-
initialExperience += experience[i];
13+
x -= dx;
14+
y += dy;
1415
}
15-
return res;
16-
}
16+
return ans;
17+
}
Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
class Solution {
22
public:
3-
int minNumberOfHours(int initialEnergy, int initialExperience, vector<int>& energy, vector<int>& experience) {
3+
int minNumberOfHours(int x, int y, vector<int>& energy, vector<int>& experience) {
44
int ans = 0;
55
for (int i = 0; i < energy.size(); ++i) {
6-
int a = energy[i], b = experience[i];
7-
if (initialEnergy <= a) {
8-
ans += a - initialEnergy + 1;
9-
initialEnergy = a + 1;
6+
int dx = energy[i], dy = experience[i];
7+
if (x <= dx) {
8+
ans += dx + 1 - x;
9+
x = dx + 1;
1010
}
11-
if (initialExperience <= b) {
12-
ans += b - initialExperience + 1;
13-
initialExperience = b + 1;
11+
if (y <= dy) {
12+
ans += dy + 1 - y;
13+
y = dy + 1;
1414
}
15-
initialEnergy -= a;
16-
initialExperience += b;
15+
x -= dx;
16+
y += dy;
1717
}
1818
return ans;
1919
}
20-
};
20+
};
Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
1-
func minNumberOfHours(initialEnergy int, initialExperience int, energy []int, experience []int) int {
2-
ans := 0
3-
for i, a := range energy {
4-
b := experience[i]
5-
if initialEnergy <= a {
6-
ans += a - initialEnergy + 1
7-
initialEnergy = a + 1
1+
func minNumberOfHours(x int, y int, energy []int, experience []int) (ans int) {
2+
for i, dx := range energy {
3+
dy := experience[i]
4+
if x <= dx {
5+
ans += dx + 1 - x
6+
x = dx + 1
87
}
9-
if initialExperience <= b {
10-
ans += b-initialExperience+ 1
11-
initialExperience = b + 1
8+
if y <= dy {
9+
ans += dy+ 1-y
10+
y = dy + 1
1211
}
13-
initialEnergy -= a
14-
initialExperience += b
12+
x -= dx
13+
y += dy
1514
}
16-
returnans
17-
}
15+
return
16+
}
Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
class Solution {
2-
public int minNumberOfHours(
3-
int initialEnergy, int initialExperience, int[] energy, int[] experience) {
2+
public int minNumberOfHours(int x, int y, int[] energy, int[] experience) {
43
int ans = 0;
54
for (int i = 0; i < energy.length; ++i) {
6-
int a = energy[i], b = experience[i];
7-
if (initialEnergy <= a) {
8-
ans += a - initialEnergy+ 1;
9-
initialEnergy = a + 1;
5+
int dx = energy[i], dy = experience[i];
6+
if (x <= dx) {
7+
ans += dx+ 1 - x;
8+
x = dx + 1;
109
}
11-
if (initialExperience <= b) {
12-
ans += b - initialExperience+ 1;
13-
initialExperience = b + 1;
10+
if (y <= dy) {
11+
ans += dy+ 1 - y;
12+
y = dy + 1;
1413
}
15-
initialEnergy -= a;
16-
initialExperience += b;
14+
x -= dx;
15+
y += dy;
1716
}
1817
return ans;
1918
}
20-
}
19+
}
Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
class Solution:
22
def minNumberOfHours(
3-
self,
4-
initialEnergy: int,
5-
initialExperience: int,
6-
energy: List[int],
7-
experience: List[int],
3+
self, x: int, y: int, energy: List[int], experience: List[int]
84
) -> int:
95
ans = 0
10-
for a, b in zip(energy, experience):
11-
if initialEnergy <= a:
12-
ans += a-initialEnergy+ 1
13-
initialEnergy = a + 1
14-
if initialExperience <= b:
15-
ans += b-initialExperience+ 1
16-
initialExperience = b + 1
17-
initialEnergy -= a
18-
initialExperience += b
6+
for dx, dy in zip(energy, experience):
7+
if x <= dx:
8+
ans += dx+ 1-x
9+
x = dx + 1
10+
if y <= dy:
11+
ans += dy+ 1-y
12+
y = dy + 1
13+
x -= dx
14+
y += dy
1915
return ans
Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
11
impl Solution {
22
pub fn min_number_of_hours(
3-
mut initial_energy: i32,
4-
mut initial_experience: i32,
3+
mut x: i32,
4+
mut y: i32,
55
energy: Vec<i32>,
66
experience: Vec<i32>,
77
) -> i32 {
8-
let n = energy.len();
9-
letmut res = 0;
10-
for i in 0..n {
11-
if initial_energy <= energy[i] {
12-
res += energy[i] - initial_energy + 1;
13-
initial_energy = energy[i] + 1;
8+
let mut ans = 0;
9+
10+
for (&dx,&dy)in energy.iter().zip(experience.iter()) {
11+
if x <= dx {
12+
ans += dx + 1 - x;
13+
x = dx + 1;
1414
}
15-
if initial_experience <= experience[i] {
16-
res += experience[i] - initial_experience + 1;
17-
initial_experience = experience[i] + 1;
15+
if y <= dy {
16+
ans += dy + 1 - y;
17+
y = dy + 1;
1818
}
19-
initial_energy -= energy[i];
20-
initial_experience += experience[i];
19+
x -= dx;
20+
y += dy;
2121
}
22-
res
22+
23+
ans
2324
}
2425
}
Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,17 @@
1-
function minNumberOfHours(
2-
initialEnergy: number,
3-
initialExperience: number,
4-
energy: number[],
5-
experience: number[],
6-
): number {
7-
const n = energy.length;
1+
function minNumberOfHours(x: number, y: number, energy: number[], experience: number[]): number {
82
let ans = 0;
9-
for (let i = 0; i < n; i++) {
10-
const minEnergy = energy[i];
11-
const minExperience = experience[i];
12-
if (initialEnergy <= minEnergy) {
13-
const need = minEnergy - initialEnergy + 1;
14-
ans += need;
15-
initialEnergy += need;
3+
for (let i = 0; i < energy.length; ++i) {
4+
const [dx, dy] = [energy[i], experience[i]];
5+
if (x <= dx) {
6+
ans += dx + 1 - x;
7+
x = dx + 1;
168
}
17-
if (initialExperience <= minExperience) {
18-
const need = minExperience - initialExperience + 1;
19-
ans += need;
20-
initialExperience += need;
9+
if (y <= dy) {
10+
ans += dy + 1 - y;
11+
y = dy + 1;
2112
}
22-
initialEnergy -= minEnergy;
23-
initialExperience += minExperience;
13+
x -= dx;
14+
y += dy;
2415
}
2516
return ans;
2617
}

‎solution/2300-2399/2383.Minimum Hours of Training to Win a Competition/Solution2.cpp‎

Lines changed: 0 additions & 15 deletions
This file was deleted.

0 commit comments

Comments
(0)

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