File tree Expand file tree Collapse file tree 5 files changed +86
-24
lines changed
solution/2300-2399/2357.Make Array Zero by Subtracting Equal Amounts Expand file tree Collapse file tree 5 files changed +86
-24
lines changed Original file line number Diff line number Diff line change @@ -126,14 +126,38 @@ func minimumOperations(nums []int) (ans int) {
126
126
127
127
``` ts
128
128
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;
136
158
}
159
+ vis[ nums[ i]] = 1;
160
+ ans++;
137
161
}
138
162
return ans;
139
163
}
Original file line number Diff line number Diff line change @@ -111,14 +111,38 @@ func minimumOperations(nums []int) (ans int) {
111
111
112
112
``` ts
113
113
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;
121
143
}
144
+ vis[ nums[ i]] = 1;
145
+ ans++;
122
146
}
123
147
return ans;
124
148
}
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change 1
1
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 ;
12
5
}
You can’t perform that action at this time.
0 commit comments