Skip to content

Commit e69e9bb

Browse files
committed
feat: add solutions to lc problem: No.2357
No.2357.Make Array Zero by Subtracting Equal Amounts
1 parent 9a9ac14 commit e69e9bb

File tree

5 files changed

+86
-24
lines changed

5 files changed

+86
-24
lines changed

solution/2300-2399/2357.Make Array Zero by Subtracting Equal Amounts/README.md

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -126,14 +126,38 @@ func minimumOperations(nums []int) (ans int) {
126126

127127
```ts
128128
function minimumOperations(nums: number[]): number {
129-
const s = new Array(101).fill(false);
130-
s[0] = true;
131-
let ans = 0;
132-
for (const x of nums) {
133-
if (!s[x]) {
134-
s[x] = true;
135-
++ans;
129+
const set = new Set(nums);
130+
set.delete(0);
131+
return set.size;
132+
}
133+
```
134+
135+
### **Rust**
136+
137+
```rust
138+
use std::collections::HashSet;
139+
impl Solution {
140+
pub fn minimum_operations(nums: Vec<i32>) -> i32 {
141+
let mut set = nums.iter().collect::<HashSet<&i32>>();
142+
set.remove(&0);
143+
set.len() as i32
144+
}
145+
}
146+
```
147+
148+
### **C**
149+
150+
```c
151+
int minimumOperations(int *nums, int numsSize) {
152+
int vis[101] = {0};
153+
vis[0] = 1;
154+
int ans = 0;
155+
for (int i = 0; i < numsSize; i++) {
156+
if (vis[nums[i]]) {
157+
continue;
136158
}
159+
vis[nums[i]] = 1;
160+
ans++;
137161
}
138162
return ans;
139163
}

solution/2300-2399/2357.Make Array Zero by Subtracting Equal Amounts/README_EN.md

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -111,14 +111,38 @@ func minimumOperations(nums []int) (ans int) {
111111

112112
```ts
113113
function minimumOperations(nums: number[]): number {
114-
const s = new Array(101).fill(false);
115-
s[0] = true;
116-
let ans = 0;
117-
for (const x of nums) {
118-
if (!s[x]) {
119-
s[x] = true;
120-
++ans;
114+
const set = new Set(nums);
115+
set.delete(0);
116+
return set.size;
117+
}
118+
```
119+
120+
### **Rust**
121+
122+
```rust
123+
use std::collections::HashSet;
124+
impl Solution {
125+
pub fn minimum_operations(nums: Vec<i32>) -> i32 {
126+
let mut set = nums.iter().collect::<HashSet<&i32>>();
127+
set.remove(&0);
128+
set.len() as i32
129+
}
130+
}
131+
```
132+
133+
### **C**
134+
135+
```c
136+
int minimumOperations(int *nums, int numsSize) {
137+
int vis[101] = {0};
138+
vis[0] = 1;
139+
int ans = 0;
140+
for (int i = 0; i < numsSize; i++) {
141+
if (vis[nums[i]]) {
142+
continue;
121143
}
144+
vis[nums[i]] = 1;
145+
ans++;
122146
}
123147
return ans;
124148
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
int minimumOperations(int *nums, int numsSize) {
2+
int vis[101] = {0};
3+
vis[0] = 1;
4+
int ans = 0;
5+
for (int i = 0; i < numsSize; i++) {
6+
if (vis[nums[i]]) {
7+
continue;
8+
}
9+
vis[nums[i]] = 1;
10+
ans++;
11+
}
12+
return ans;
13+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
use std::collections::HashSet;
2+
impl Solution {
3+
pub fn minimum_operations(nums: Vec<i32>) -> i32 {
4+
let mut set = nums.iter().collect::<HashSet<&i32>>();
5+
set.remove(&0);
6+
set.len() as i32
7+
}
8+
}
Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,5 @@
11
function minimumOperations(nums: number[]): number {
2-
const s = new Array(101).fill(false);
3-
s[0] = true;
4-
let ans = 0;
5-
for (const x of nums) {
6-
if (!s[x]) {
7-
s[x] = true;
8-
++ans;
9-
}
10-
}
11-
return ans;
2+
const set = new Set(nums);
3+
set.delete(0);
4+
return set.size;
125
}

0 commit comments

Comments
 (0)