File tree 3 files changed +178
-0
lines changed
solution/2400-2499/2465.Number of Distinct Averages
3 files changed +178
-0
lines changed Original file line number Diff line number Diff line change @@ -223,6 +223,83 @@ function distinctAverages(nums: number[]): number {
223
223
}
224
224
```
225
225
226
+ ### ** Rust**
227
+
228
+ ``` rust
229
+ impl Solution {
230
+ pub fn distinct_averages (nums : Vec <i32 >) -> i32 {
231
+ let mut nums = nums ;
232
+ nums . sort ();
233
+ let n = nums . len ();
234
+ let mut cnt = vec! [0 ; 201 ];
235
+ let mut ans = 0 ;
236
+
237
+ for i in 0 .. n >> 1 {
238
+ let x = (nums [i ] + nums [n - i - 1 ]) as usize ;
239
+ cnt [x ] += 1 ;
240
+
241
+ if cnt [x ] == 1 {
242
+ ans += 1 ;
243
+ }
244
+ }
245
+
246
+ ans
247
+ }
248
+ }
249
+ ```
250
+
251
+ ``` rust
252
+ use std :: collections :: HashMap ;
253
+
254
+ impl Solution {
255
+ pub fn distinct_averages (nums : Vec <i32 >) -> i32 {
256
+ let mut h = HashMap :: new ();
257
+ let mut nums = nums ;
258
+ let mut ans = 0 ;
259
+ let n = nums . len ();
260
+ nums . sort ();
261
+
262
+ for i in 0 .. n >> 1 {
263
+ let x = nums [i ] + nums [n - i - 1 ];
264
+ * h . entry (x ). or_insert (0 ) += 1 ;
265
+
266
+ if * h . get (& x ). unwrap () == 1 {
267
+ ans += 1 ;
268
+ }
269
+ }
270
+
271
+ ans
272
+ }
273
+ }
274
+ ```
275
+
276
+ ``` rust
277
+ use std :: collections :: HashSet ;
278
+
279
+ impl Solution {
280
+ pub fn distinct_averages (nums : Vec <i32 >) -> i32 {
281
+ let mut set = HashSet :: new ();
282
+ let mut ans = 0 ;
283
+ let n = nums . len ();
284
+ let mut nums = nums ;
285
+ nums . sort ();
286
+
287
+ for i in 0 .. n >> 1 {
288
+ let x = nums [i ] + nums [n - i - 1 ];
289
+
290
+ if set . contains (& x ) {
291
+ continue ;
292
+ }
293
+
294
+ set . insert (x );
295
+ ans += 1 ;
296
+ }
297
+
298
+ ans
299
+ }
300
+ }
301
+ ```
302
+
226
303
### ** ...**
227
304
228
305
```
Original file line number Diff line number Diff line change @@ -209,6 +209,83 @@ function distinctAverages(nums: number[]): number {
209
209
}
210
210
```
211
211
212
+ ### ** Rust**
213
+
214
+ ``` rust
215
+ impl Solution {
216
+ pub fn distinct_averages (nums : Vec <i32 >) -> i32 {
217
+ let mut nums = nums ;
218
+ nums . sort ();
219
+ let n = nums . len ();
220
+ let mut cnt = vec! [0 ; 201 ];
221
+ let mut ans = 0 ;
222
+
223
+ for i in 0 .. n >> 1 {
224
+ let x = (nums [i ] + nums [n - i - 1 ]) as usize ;
225
+ cnt [x ] += 1 ;
226
+
227
+ if cnt [x ] == 1 {
228
+ ans += 1 ;
229
+ }
230
+ }
231
+
232
+ ans
233
+ }
234
+ }
235
+ ```
236
+
237
+ ``` rust
238
+ use std :: collections :: HashMap ;
239
+
240
+ impl Solution {
241
+ pub fn distinct_averages (nums : Vec <i32 >) -> i32 {
242
+ let mut h = HashMap :: new ();
243
+ let mut nums = nums ;
244
+ let mut ans = 0 ;
245
+ let n = nums . len ();
246
+ nums . sort ();
247
+
248
+ for i in 0 .. n >> 1 {
249
+ let x = nums [i ] + nums [n - i - 1 ];
250
+ * h . entry (x ). or_insert (0 ) += 1 ;
251
+
252
+ if * h . get (& x ). unwrap () == 1 {
253
+ ans += 1 ;
254
+ }
255
+ }
256
+
257
+ ans
258
+ }
259
+ }
260
+ ```
261
+
262
+ ``` rust
263
+ use std :: collections :: HashSet ;
264
+
265
+ impl Solution {
266
+ pub fn distinct_averages (nums : Vec <i32 >) -> i32 {
267
+ let mut set = HashSet :: new ();
268
+ let mut ans = 0 ;
269
+ let n = nums . len ();
270
+ let mut nums = nums ;
271
+ nums . sort ();
272
+
273
+ for i in 0 .. n >> 1 {
274
+ let x = nums [i ] + nums [n - i - 1 ];
275
+
276
+ if set . contains (& x ) {
277
+ continue ;
278
+ }
279
+
280
+ set . insert (x );
281
+ ans += 1 ;
282
+ }
283
+
284
+ ans
285
+ }
286
+ }
287
+ ```
288
+
212
289
### ** ...**
213
290
214
291
```
Original file line number Diff line number Diff line change
1
+ use std:: collections:: HashSet ;
2
+
3
+ impl Solution {
4
+ pub fn distinct_averages ( nums : Vec < i32 > ) -> i32 {
5
+ let mut set = HashSet :: new ( ) ;
6
+ let mut ans = 0 ;
7
+ let n = nums. len ( ) ;
8
+ let mut nums = nums;
9
+ nums. sort ( ) ;
10
+
11
+ for i in 0 ..n >> 1 {
12
+ let x = nums[ i] + nums[ n - i - 1 ] ;
13
+
14
+ if set. contains ( & x) {
15
+ continue ;
16
+ }
17
+
18
+ set. insert ( x) ;
19
+ ans += 1 ;
20
+ }
21
+
22
+ ans
23
+ }
24
+ }
You can’t perform that action at this time.
0 commit comments