Skip to content

Commit 14dc6f3

Browse files
committed
feat: add solutions to lc problem: No.2293
No.2293.Min Max Game
1 parent 2e58403 commit 14dc6f3

File tree

4 files changed

+110
-0
lines changed

4 files changed

+110
-0
lines changed

solution/2200-2299/2293.Min Max Game/README.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,46 @@ function minMaxGame(nums: number[]): number {
168168
}
169169
```
170170

171+
### **Rust**
172+
173+
```rust
174+
impl Solution {
175+
pub fn min_max_game(mut nums: Vec<i32>) -> i32 {
176+
let mut n = nums.len();
177+
while n != 1 {
178+
n >>= 1;
179+
for i in 0..n {
180+
nums[i] = (if i & 1 == 1 {
181+
i32::max
182+
} else {
183+
i32::min
184+
})(nums[i << 1], nums[i << 1 | 1])
185+
}
186+
}
187+
nums[0]
188+
}
189+
}
190+
```
191+
192+
### **C**
193+
194+
```c
195+
#define min(a, b) (((a) < (b)) ? (a) : (b))
196+
#define max(a, b) (((a) > (b)) ? (a) : (b))
197+
198+
int minMaxGame(int *nums, int numsSize) {
199+
while (numsSize != 1) {
200+
numsSize >>= 1;
201+
for (int i = 0; i < numsSize; i++) {
202+
int a = nums[i << 1];
203+
int b = nums[i << 1 | 1];
204+
nums[i] = i & 1 ? max(a, b) : min(a, b);
205+
}
206+
}
207+
return nums[0];
208+
}
209+
```
210+
171211
### **...**
172212
173213
```

solution/2200-2299/2293.Min Max Game/README_EN.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,46 @@ function minMaxGame(nums: number[]): number {
150150
}
151151
```
152152

153+
### **Rust**
154+
155+
```rust
156+
impl Solution {
157+
pub fn min_max_game(mut nums: Vec<i32>) -> i32 {
158+
let mut n = nums.len();
159+
while n != 1 {
160+
n >>= 1;
161+
for i in 0..n {
162+
nums[i] = (if i & 1 == 1 {
163+
i32::max
164+
} else {
165+
i32::min
166+
})(nums[i << 1], nums[i << 1 | 1])
167+
}
168+
}
169+
nums[0]
170+
}
171+
}
172+
```
173+
174+
### **C**
175+
176+
```c
177+
#define min(a, b) (((a) < (b)) ? (a) : (b))
178+
#define max(a, b) (((a) > (b)) ? (a) : (b))
179+
180+
int minMaxGame(int *nums, int numsSize) {
181+
while (numsSize != 1) {
182+
numsSize >>= 1;
183+
for (int i = 0; i < numsSize; i++) {
184+
int a = nums[i << 1];
185+
int b = nums[i << 1 | 1];
186+
nums[i] = i & 1 ? max(a, b) : min(a, b);
187+
}
188+
}
189+
return nums[0];
190+
}
191+
```
192+
153193
### **...**
154194
155195
```
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#define min(a, b) (((a) < (b)) ? (a) : (b))
2+
#define max(a, b) (((a) > (b)) ? (a) : (b))
3+
4+
int minMaxGame(int *nums, int numsSize) {
5+
while (numsSize != 1) {
6+
numsSize >>= 1;
7+
for (int i = 0; i < numsSize; i++) {
8+
int a = nums[i << 1];
9+
int b = nums[i << 1 | 1];
10+
nums[i] = i & 1 ? max(a, b) : min(a, b);
11+
}
12+
}
13+
return nums[0];
14+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
impl Solution {
2+
pub fn min_max_game(mut nums: Vec<i32>) -> i32 {
3+
let mut n = nums.len();
4+
while n != 1 {
5+
n >>= 1;
6+
for i in 0..n {
7+
nums[i] = (if i & 1 == 1 {
8+
i32::max
9+
} else {
10+
i32::min
11+
})(nums[i << 1], nums[i << 1 | 1])
12+
}
13+
}
14+
nums[0]
15+
}
16+
}

0 commit comments

Comments
 (0)