Skip to content

Commit 4b145c4

Browse files
committed
feat: add solutions to lc problems: No.2432, 2433
1 parent d7f5a54 commit 4b145c4

File tree

8 files changed

+205
-0
lines changed

8 files changed

+205
-0
lines changed

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

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,27 @@ func hardestWorker(n int, logs [][]int) int {
169169
}
170170
```
171171

172+
### **C**
173+
174+
```c
175+
#define min(a,b) (((a) < (b)) ? (a) : (b))
176+
177+
int hardestWorker(int n, int **logs, int logsSize, int *logsColSize) {
178+
int res = 0;
179+
int max = 0;
180+
int pre = 0;
181+
for (int i = 0; i < logsSize; i++) {
182+
int t = logs[i][1] - pre;
183+
if (t > max || (t == max && res > logs[i][0])) {
184+
res = logs[i][0];
185+
max = t;
186+
}
187+
pre = logs[i][1];
188+
}
189+
return res;
190+
}
191+
```
192+
172193
### **TypeScript**
173194
174195
```ts
@@ -186,6 +207,27 @@ function hardestWorker(n: number, logs: number[][]): number {
186207
}
187208
```
188209

210+
### **Rust**
211+
212+
```rust
213+
impl Solution {
214+
pub fn hardest_worker(n: i32, logs: Vec<Vec<i32>>) -> i32 {
215+
let mut res = 0;
216+
let mut max = 0;
217+
let mut pre = 0;
218+
for log in logs.iter() {
219+
let t = log[1] - pre;
220+
if t > max || t == max && res > log[0] {
221+
res = log[0];
222+
max = t;
223+
}
224+
pre = log[1];
225+
}
226+
res
227+
}
228+
}
229+
```
230+
189231
### **...**
190232

191233
```

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

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,27 @@ func hardestWorker(n int, logs [][]int) int {
153153
}
154154
```
155155

156+
### **C**
157+
158+
```c
159+
#define min(a,b) (((a) < (b)) ? (a) : (b))
160+
161+
int hardestWorker(int n, int **logs, int logsSize, int *logsColSize) {
162+
int res = 0;
163+
int max = 0;
164+
int pre = 0;
165+
for (int i = 0; i < logsSize; i++) {
166+
int t = logs[i][1] - pre;
167+
if (t > max || (t == max && res > logs[i][0])) {
168+
res = logs[i][0];
169+
max = t;
170+
}
171+
pre = logs[i][1];
172+
}
173+
return res;
174+
}
175+
```
176+
156177
### **TypeScript**
157178
158179
```ts
@@ -170,6 +191,27 @@ function hardestWorker(n: number, logs: number[][]): number {
170191
}
171192
```
172193

194+
### **Rust**
195+
196+
```rust
197+
impl Solution {
198+
pub fn hardest_worker(n: i32, logs: Vec<Vec<i32>>) -> i32 {
199+
let mut res = 0;
200+
let mut max = 0;
201+
let mut pre = 0;
202+
for log in logs.iter() {
203+
let t = log[1] - pre;
204+
if t > max || t == max && res > log[0] {
205+
res = log[0];
206+
max = t;
207+
}
208+
pre = log[1];
209+
}
210+
res
211+
}
212+
}
213+
```
214+
173215
### **...**
174216

175217
```
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#define min(a,b) (((a) < (b)) ? (a) : (b))
2+
3+
int hardestWorker(int n, int **logs, int logsSize, int *logsColSize) {
4+
int res = 0;
5+
int max = 0;
6+
int pre = 0;
7+
for (int i = 0; i < logsSize; i++) {
8+
int t = logs[i][1] - pre;
9+
if (t > max || (t == max && res > logs[i][0])) {
10+
res = logs[i][0];
11+
max = t;
12+
}
13+
pre = logs[i][1];
14+
}
15+
return res;
16+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
impl Solution {
2+
pub fn hardest_worker(n: i32, logs: Vec<Vec<i32>>) -> i32 {
3+
let mut res = 0;
4+
let mut max = 0;
5+
let mut pre = 0;
6+
for log in logs.iter() {
7+
let t = log[1] - pre;
8+
if t > max || t == max && res > log[0] {
9+
res = log[0];
10+
max = t;
11+
}
12+
pre = log[1];
13+
}
14+
res
15+
}
16+
}

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

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,23 @@ func findArray(pref []int) []int {
136136
}
137137
```
138138

139+
### **C**
140+
141+
```c
142+
/**
143+
* Note: The returned array must be malloced, assume caller calls free().
144+
*/
145+
int *findArray(int *pref, int prefSize, int *returnSize) {
146+
int *res = (int *) malloc(sizeof(int) * prefSize);
147+
res[0] = pref[0];
148+
for (int i = 1; i < prefSize; i++) {
149+
res[i] = pref[i - 1] ^ pref[i];
150+
}
151+
*returnSize = prefSize;
152+
return res;
153+
}
154+
```
155+
139156
### **TypeScript**
140157
141158
```ts
@@ -148,6 +165,22 @@ function findArray(pref: number[]): number[] {
148165
}
149166
```
150167

168+
### **Rust**
169+
170+
```rust
171+
impl Solution {
172+
pub fn find_array(pref: Vec<i32>) -> Vec<i32> {
173+
let n = pref.len();
174+
let mut res = vec![0; n];
175+
res[0] = pref[0];
176+
for i in 1..n {
177+
res[i] = pref[i] ^ pref[i - 1];
178+
}
179+
res
180+
}
181+
}
182+
```
183+
151184
### **...**
152185

153186
```

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

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,23 @@ func findArray(pref []int) []int {
104104
}
105105
```
106106

107+
### **C**
108+
109+
```c
110+
/**
111+
* Note: The returned array must be malloced, assume caller calls free().
112+
*/
113+
int *findArray(int *pref, int prefSize, int *returnSize) {
114+
int *res = (int *) malloc(sizeof(int) * prefSize);
115+
res[0] = pref[0];
116+
for (int i = 1; i < prefSize; i++) {
117+
res[i] = pref[i - 1] ^ pref[i];
118+
}
119+
*returnSize = prefSize;
120+
return res;
121+
}
122+
```
123+
107124
### **TypeScript**
108125
109126
```ts
@@ -116,6 +133,22 @@ function findArray(pref: number[]): number[] {
116133
}
117134
```
118135

136+
### **Rust**
137+
138+
```rust
139+
impl Solution {
140+
pub fn find_array(pref: Vec<i32>) -> Vec<i32> {
141+
let n = pref.len();
142+
let mut res = vec![0; n];
143+
res[0] = pref[0];
144+
for i in 1..n {
145+
res[i] = pref[i] ^ pref[i - 1];
146+
}
147+
res
148+
}
149+
}
150+
```
151+
119152
### **...**
120153

121154
```
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/**
2+
* Note: The returned array must be malloced, assume caller calls free().
3+
*/
4+
int *findArray(int *pref, int prefSize, int *returnSize) {
5+
int *res = (int *) malloc(sizeof(int) * prefSize);
6+
res[0] = pref[0];
7+
for (int i = 1; i < prefSize; i++) {
8+
res[i] = pref[i - 1] ^ pref[i];
9+
}
10+
*returnSize = prefSize;
11+
return res;
12+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
impl Solution {
2+
pub fn find_array(pref: Vec<i32>) -> Vec<i32> {
3+
let n = pref.len();
4+
let mut res = vec![0; n];
5+
res[0] = pref[0];
6+
for i in 1..n {
7+
res[i] = pref[i] ^ pref[i - 1];
8+
}
9+
res
10+
}
11+
}

0 commit comments

Comments
 (0)