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 297edde

Browse files
committed
feat: update solutions to lc problems: No.2432~2435
1 parent 6c6522d commit 297edde

File tree

10 files changed

+110
-133
lines changed

10 files changed

+110
-133
lines changed

‎solution/2400-2499/2432.The Employee That Worked on the Longest Task/README.md

Lines changed: 38 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,9 @@
7878

7979
**方法一:模拟**
8080

81-
遍历 `logs`,记录每个员工的工作时间,最后返回工作时间最长且 id 最小的员工。
81+
我们遍历数组 `logs`,记录每个员工的工作时间,最后返回工作时间最长且 id 最小的员工。
8282

83-
时间复杂度 $O(n),ドル空间复杂度 $O(1)$。其中 $n$ `logs` 的长度。
83+
时间复杂度 $O(n),ドル空间复杂度 $O(1)$。其中 $n$ 为数组 `logs` 的长度。
8484

8585
<!-- tabs:start -->
8686

@@ -91,15 +91,14 @@
9191
```python
9292
class Solution:
9393
def hardestWorker(self, n: int, logs: List[List[int]]) -> int:
94-
ans = mx = last = 0
94+
last = 0
95+
ans = mx = 0
9596
for uid, t in logs:
96-
x = t - last
97-
if mx < x:
98-
mx = x
97+
t -= last
98+
if mx < t or (mx == t and ans > uid):
9999
ans = uid
100-
elif mx == x and ans > uid:
101-
ans = uid
102-
last = t
100+
mx = t
101+
last += t
103102
return ans
104103
```
105104

@@ -110,17 +109,16 @@ class Solution:
110109
```java
111110
class Solution {
112111
public int hardestWorker(int n, int[][] logs) {
113-
int ans = 0, mx = 0, last = 0;
114-
for (var e : logs) {
115-
int uid = e[0], t = e[1];
116-
int x = t - last;
117-
if (mx < x) {
118-
mx = x;
119-
ans = uid;
120-
} else if (mx == x && ans > uid) {
112+
int ans = 0;
113+
int last = 0, mx = 0;
114+
for (int[] log : logs) {
115+
int uid = log[0], t = log[1];
116+
t -= last;
117+
if (mx < t || (mx == t && ans > uid)) {
121118
ans = uid;
119+
mx = t;
122120
}
123-
last = t;
121+
last += t;
124122
}
125123
return ans;
126124
}
@@ -134,16 +132,14 @@ class Solution {
134132
public:
135133
int hardestWorker(int n, vector<vector<int>>& logs) {
136134
int ans = 0, mx = 0, last = 0;
137-
for (auto& e : logs) {
138-
int uid = e[0], t = e[1];
139-
int x = t - last;
140-
if (mx < x) {
141-
mx = x;
142-
ans = uid;
143-
} else if (mx == x && ans > uid) {
135+
for (auto& log : logs) {
136+
int uid = log[0], t = log[1];
137+
t -= last;
138+
if (mx < t || (mx == t && ans > uid)) {
139+
mx = t;
144140
ans = uid;
145141
}
146-
last = t;
142+
last += t;
147143
}
148144
return ans;
149145
}
@@ -153,19 +149,18 @@ public:
153149
### **Go**
154150
155151
```go
156-
func hardestWorker(n int, logs [][]int) int {
157-
ans, mx, last := 0, 0, 0
158-
for _, e := range logs {
159-
uid, t := e[0], e[1]
160-
x := t - last
161-
if mx < x {
162-
mx, ans = x, uid
163-
} else if mx == x && ans > uid {
152+
func hardestWorker(n int, logs [][]int) (ans int) {
153+
var mx, last int
154+
for _, log := range logs {
155+
uid, t := log[0], log[1]
156+
t -= last
157+
if mx < t || (mx == t && uid < ans) {
158+
mx = t
164159
ans = uid
165160
}
166-
last = t
161+
last += t
167162
}
168-
return ans
163+
return
169164
}
170165
```
171166

@@ -194,14 +189,14 @@ int hardestWorker(int n, int **logs, int logsSize, int *logsColSize) {
194189
195190
```ts
196191
function hardestWorker(n: number, logs: number[][]): number {
197-
let [ans, max_num] = logs[0];
198-
for (let i = 1; i < logs.length; i++) {
199-
let duration = logs[i][1] - logs[i - 1][1];
200-
let id = logs[i][0];
201-
if (duration > max_num || (duration == max_num && id < ans)) {
202-
ans = id;
203-
max_num = duration;
192+
let [ans, mx, last] = [0, 0, 0];
193+
for (let [uid, t] of logs) {
194+
t -= last;
195+
if (mx < t || (mx == t && ans > uid)) {
196+
ans = uid;
197+
mx = t;
204198
}
199+
last += t;
205200
}
206201
return ans;
207202
}

‎solution/2400-2499/2432.The Employee That Worked on the Longest Task/README_EN.md

Lines changed: 36 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -77,15 +77,14 @@ The tasks with the longest time are tasks 0 and 1. The employees that worked on
7777
```python
7878
class Solution:
7979
def hardestWorker(self, n: int, logs: List[List[int]]) -> int:
80-
ans = mx = last = 0
80+
last = 0
81+
ans = mx = 0
8182
for uid, t in logs:
82-
x = t - last
83-
if mx < x:
84-
mx = x
83+
t -= last
84+
if mx < t or (mx == t and ans > uid):
8585
ans = uid
86-
elif mx == x and ans > uid:
87-
ans = uid
88-
last = t
86+
mx = t
87+
last += t
8988
return ans
9089
```
9190

@@ -94,17 +93,16 @@ class Solution:
9493
```java
9594
class Solution {
9695
public int hardestWorker(int n, int[][] logs) {
97-
int ans = 0, mx = 0, last = 0;
98-
for (var e : logs) {
99-
int uid = e[0], t = e[1];
100-
int x = t - last;
101-
if (mx < x) {
102-
mx = x;
103-
ans = uid;
104-
} else if (mx == x && ans > uid) {
96+
int ans = 0;
97+
int last = 0, mx = 0;
98+
for (int[] log : logs) {
99+
int uid = log[0], t = log[1];
100+
t -= last;
101+
if (mx < t || (mx == t && ans > uid)) {
105102
ans = uid;
103+
mx = t;
106104
}
107-
last = t;
105+
last += t;
108106
}
109107
return ans;
110108
}
@@ -118,16 +116,14 @@ class Solution {
118116
public:
119117
int hardestWorker(int n, vector<vector<int>>& logs) {
120118
int ans = 0, mx = 0, last = 0;
121-
for (auto& e : logs) {
122-
int uid = e[0], t = e[1];
123-
int x = t - last;
124-
if (mx < x) {
125-
mx = x;
126-
ans = uid;
127-
} else if (mx == x && ans > uid) {
119+
for (auto& log : logs) {
120+
int uid = log[0], t = log[1];
121+
t -= last;
122+
if (mx < t || (mx == t && ans > uid)) {
123+
mx = t;
128124
ans = uid;
129125
}
130-
last = t;
126+
last += t;
131127
}
132128
return ans;
133129
}
@@ -137,19 +133,18 @@ public:
137133
### **Go**
138134
139135
```go
140-
func hardestWorker(n int, logs [][]int) int {
141-
ans, mx, last := 0, 0, 0
142-
for _, e := range logs {
143-
uid, t := e[0], e[1]
144-
x := t - last
145-
if mx < x {
146-
mx, ans = x, uid
147-
} else if mx == x && ans > uid {
136+
func hardestWorker(n int, logs [][]int) (ans int) {
137+
var mx, last int
138+
for _, log := range logs {
139+
uid, t := log[0], log[1]
140+
t -= last
141+
if mx < t || (mx == t && uid < ans) {
142+
mx = t
148143
ans = uid
149144
}
150-
last = t
145+
last += t
151146
}
152-
return ans
147+
return
153148
}
154149
```
155150

@@ -178,14 +173,14 @@ int hardestWorker(int n, int **logs, int logsSize, int *logsColSize) {
178173
179174
```ts
180175
function hardestWorker(n: number, logs: number[][]): number {
181-
let [ans, max_num] = logs[0];
182-
for (let i = 1; i < logs.length; i++) {
183-
let duration = logs[i][1] - logs[i - 1][1];
184-
let id = logs[i][0];
185-
if (duration > max_num || (duration == max_num && id < ans)) {
186-
ans = id;
187-
max_num = duration;
176+
let [ans, mx, last] = [0, 0, 0];
177+
for (let [uid, t] of logs) {
178+
t -= last;
179+
if (mx < t || (mx == t && ans > uid)) {
180+
ans = uid;
181+
mx = t;
188182
}
183+
last += t;
189184
}
190185
return ans;
191186
}

‎solution/2400-2499/2432.The Employee That Worked on the Longest Task/Solution.cpp

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,14 @@ class Solution {
22
public:
33
int hardestWorker(int n, vector<vector<int>>& logs) {
44
int ans = 0, mx = 0, last = 0;
5-
for (auto& e : logs) {
6-
int uid = e[0], t = e[1];
7-
int x = t - last;
8-
if (mx < x) {
9-
mx = x;
10-
ans = uid;
11-
} else if (mx == x && ans > uid) {
5+
for (auto& log : logs) {
6+
int uid = log[0], t = log[1];
7+
t -= last;
8+
if (mx < t || (mx == t && ans > uid)) {
9+
mx = t;
1210
ans = uid;
1311
}
14-
last = t;
12+
last += t;
1513
}
1614
return ans;
1715
}
Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
1-
func hardestWorker(n int, logs [][]int) int {
2-
ans, mx, last := 0, 0, 0
3-
for _, e := range logs {
4-
uid, t := e[0], e[1]
5-
x := t - last
6-
if mx < x {
7-
mx, ans = x, uid
8-
} else if mx == x && ans > uid {
1+
func hardestWorker(n int, logs [][]int) (ans int) {
2+
var mx, last int
3+
for _, log := range logs {
4+
uid, t := log[0], log[1]
5+
t -= last
6+
if mx < t || (mx == t && uid < ans) {
7+
mx = t
98
ans = uid
109
}
11-
last = t
10+
last += t
1211
}
13-
returnans
12+
return
1413
}

‎solution/2400-2499/2432.The Employee That Worked on the Longest Task/Solution.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
class Solution {
22
public int hardestWorker(int n, int[][] logs) {
3-
int ans = 0, mx = 0, last = 0;
4-
for (var e : logs) {
5-
int uid = e[0], t = e[1];
6-
int x = t - last;
7-
if (mx < x) {
8-
mx = x;
9-
ans = uid;
10-
} else if (mx == x && ans > uid) {
3+
int ans = 0;
4+
int last = 0, mx = 0;
5+
for (int[] log : logs) {
6+
int uid = log[0], t = log[1];
7+
t -= last;
8+
if (mx < t || (mx == t && ans > uid)) {
119
ans = uid;
10+
mx = t;
1211
}
13-
last = t;
12+
last += t;
1413
}
1514
return ans;
1615
}
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
function hardestWorker(n: number, logs: number[][]): number {
2-
let [ans, max_num] = logs[0];
3-
for (let i = 1; i < logs.length; i++) {
4-
let duration = logs[i][1] - logs[i - 1][1];
5-
let id = logs[i][0];
6-
if (duration > max_num || (duration == max_num && id < ans)) {
7-
ans = id;
8-
max_num = duration;
2+
let [ans, mx, last] = [0, 0, 0];
3+
for (let [uid, t] of logs) {
4+
t -= last;
5+
if (mx < t || (mx == t && ans > uid)) {
6+
ans = uid;
7+
mx = t;
98
}
9+
last += t;
1010
}
1111
return ans;
1212
}

‎solution/2400-2499/2433.Find The Original Array of Prefix Xor/README.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,7 @@ $$
8383
```python
8484
class Solution:
8585
def findArray(self, pref: List[int]) -> List[int]:
86-
ans = [pref[0]]
87-
for a, b in pairwise(pref):
88-
ans.append(a ^ b)
89-
return ans
86+
return [a ^ b for a, b in pairwise([0] + pref)]
9087
```
9188

9289
### **Java**

‎solution/2400-2499/2433.Find The Original Array of Prefix Xor/README_EN.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,7 @@
5353
```python
5454
class Solution:
5555
def findArray(self, pref: List[int]) -> List[int]:
56-
ans = [pref[0]]
57-
for a, b in pairwise(pref):
58-
ans.append(a ^ b)
59-
return ans
56+
return [a ^ b for a, b in pairwise([0] + pref)]
6057
```
6158

6259
### **Java**
Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
11
class Solution:
22
def findArray(self, pref: List[int]) -> List[int]:
3-
ans = [pref[0]]
4-
for a, b in pairwise(pref):
5-
ans.append(a ^ b)
6-
return ans
3+
return [a ^ b for a, b in pairwise([0] + pref)]

0 commit comments

Comments
(0)

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