File tree Expand file tree Collapse file tree 5 files changed +321
-0
lines changed
solution/2600-2699/2616.Minimize the Maximum Difference of Pairs Expand file tree Collapse file tree 5 files changed +321
-0
lines changed Original file line number Diff line number Diff line change @@ -243,6 +243,118 @@ impl Solution {
243
243
}
244
244
```
245
245
246
+ #### C#
247
+
248
+ ``` cs
249
+ public class Solution {
250
+ public int MinimizeMax (int [] nums , int p ) {
251
+ Array .Sort (nums );
252
+ int n = nums .Length ;
253
+ int l = 0 , r = nums [n - 1 ] - nums [0 ] + 1 ;
254
+
255
+ bool check (int diff ) {
256
+ int cnt = 0 ;
257
+ for (int i = 0 ; i < n - 1 ; ++ i ) {
258
+ if (nums [i + 1 ] - nums [i ] <= diff ) {
259
+ ++ cnt ;
260
+ ++ i ;
261
+ }
262
+ }
263
+ return cnt >= p ;
264
+ }
265
+
266
+ while (l < r ) {
267
+ int mid = (l + r ) >> 1 ;
268
+ if (check (mid )) {
269
+ r = mid ;
270
+ } else {
271
+ l = mid + 1 ;
272
+ }
273
+ }
274
+
275
+ return l ;
276
+ }
277
+ }
278
+ ```
279
+
280
+ #### PHP
281
+
282
+ ``` php
283
+ class Solution {
284
+ /**
285
+ * @param Integer[] $nums
286
+ * @param Integer $p
287
+ * @return Integer
288
+ */
289
+ function minimizeMax($nums, $p) {
290
+ sort($nums);
291
+ $n = count($nums);
292
+ $l = 0;
293
+ $r = $nums[$n - 1] - $nums[0] + 1;
294
+
295
+ $check = function ($diff) use ($nums, $n, $p) {
296
+ $cnt = 0;
297
+ for ($i = 0; $i < $n - 1; ++$i) {
298
+ if ($nums[$i + 1] - $nums[$i] <= $diff) {
299
+ ++$cnt;
300
+ ++$i;
301
+ }
302
+ }
303
+ return $cnt >= $p;
304
+ };
305
+
306
+ while ($l < $r) {
307
+ $mid = intdiv($l + $r, 2);
308
+ if ($check($mid)) {
309
+ $r = $mid;
310
+ } else {
311
+ $l = $mid + 1;
312
+ }
313
+ }
314
+
315
+ return $l;
316
+ }
317
+ }
318
+ ```
319
+
320
+ #### Swift
321
+
322
+ ``` swift
323
+ class Solution {
324
+ func minimizeMax (_ nums : [Int ], _ p : Int ) -> Int {
325
+ var nums = nums.sorted ()
326
+ let n = nums.count
327
+ var l = 0
328
+ var r = nums[n - 1 ] - nums[0 ] + 1
329
+
330
+ func check (_ diff : Int ) -> Bool {
331
+ var cnt = 0
332
+ var i = 0
333
+ while i < n - 1 {
334
+ if nums[i + 1 ] - nums[i] <= diff {
335
+ cnt += 1
336
+ i += 2
337
+ } else {
338
+ i += 1
339
+ }
340
+ }
341
+ return cnt >= p
342
+ }
343
+
344
+ while l < r {
345
+ let mid = (l + r) >> 1
346
+ if check (mid) {
347
+ r = mid
348
+ } else {
349
+ l = mid + 1
350
+ }
351
+ }
352
+
353
+ return l
354
+ }
355
+ }
356
+ ```
357
+
246
358
<!-- tabs: end -->
247
359
248
360
<!-- solution: end -->
Original file line number Diff line number Diff line change @@ -241,6 +241,118 @@ impl Solution {
241
241
}
242
242
```
243
243
244
+ #### C#
245
+
246
+ ``` cs
247
+ public class Solution {
248
+ public int MinimizeMax (int [] nums , int p ) {
249
+ Array .Sort (nums );
250
+ int n = nums .Length ;
251
+ int l = 0 , r = nums [n - 1 ] - nums [0 ] + 1 ;
252
+
253
+ bool check (int diff ) {
254
+ int cnt = 0 ;
255
+ for (int i = 0 ; i < n - 1 ; ++ i ) {
256
+ if (nums [i + 1 ] - nums [i ] <= diff ) {
257
+ ++ cnt ;
258
+ ++ i ;
259
+ }
260
+ }
261
+ return cnt >= p ;
262
+ }
263
+
264
+ while (l < r ) {
265
+ int mid = (l + r ) >> 1 ;
266
+ if (check (mid )) {
267
+ r = mid ;
268
+ } else {
269
+ l = mid + 1 ;
270
+ }
271
+ }
272
+
273
+ return l ;
274
+ }
275
+ }
276
+ ```
277
+
278
+ #### PHP
279
+
280
+ ``` php
281
+ class Solution {
282
+ /**
283
+ * @param Integer[] $nums
284
+ * @param Integer $p
285
+ * @return Integer
286
+ */
287
+ function minimizeMax($nums, $p) {
288
+ sort($nums);
289
+ $n = count($nums);
290
+ $l = 0;
291
+ $r = $nums[$n - 1] - $nums[0] + 1;
292
+
293
+ $check = function ($diff) use ($nums, $n, $p) {
294
+ $cnt = 0;
295
+ for ($i = 0; $i < $n - 1; ++$i) {
296
+ if ($nums[$i + 1] - $nums[$i] <= $diff) {
297
+ ++$cnt;
298
+ ++$i;
299
+ }
300
+ }
301
+ return $cnt >= $p;
302
+ };
303
+
304
+ while ($l < $r) {
305
+ $mid = intdiv($l + $r, 2);
306
+ if ($check($mid)) {
307
+ $r = $mid;
308
+ } else {
309
+ $l = $mid + 1;
310
+ }
311
+ }
312
+
313
+ return $l;
314
+ }
315
+ }
316
+ ```
317
+
318
+ #### Swift
319
+
320
+ ``` swift
321
+ class Solution {
322
+ func minimizeMax (_ nums : [Int ], _ p : Int ) -> Int {
323
+ var nums = nums.sorted ()
324
+ let n = nums.count
325
+ var l = 0
326
+ var r = nums[n - 1 ] - nums[0 ] + 1
327
+
328
+ func check (_ diff : Int ) -> Bool {
329
+ var cnt = 0
330
+ var i = 0
331
+ while i < n - 1 {
332
+ if nums[i + 1 ] - nums[i] <= diff {
333
+ cnt += 1
334
+ i += 2
335
+ } else {
336
+ i += 1
337
+ }
338
+ }
339
+ return cnt >= p
340
+ }
341
+
342
+ while l < r {
343
+ let mid = (l + r) >> 1
344
+ if check (mid) {
345
+ r = mid
346
+ } else {
347
+ l = mid + 1
348
+ }
349
+ }
350
+
351
+ return l
352
+ }
353
+ }
354
+ ```
355
+
244
356
<!-- tabs: end -->
245
357
246
358
<!-- solution: end -->
Original file line number Diff line number Diff line change
1
+ public class Solution {
2
+ public int MinimizeMax ( int [ ] nums , int p ) {
3
+ Array . Sort ( nums ) ;
4
+ int n = nums . Length ;
5
+ int l = 0 , r = nums [ n - 1 ] - nums [ 0 ] + 1 ;
6
+
7
+ bool check ( int diff ) {
8
+ int cnt = 0 ;
9
+ for ( int i = 0 ; i < n - 1 ; ++ i ) {
10
+ if ( nums [ i + 1 ] - nums [ i ] <= diff ) {
11
+ ++ cnt ;
12
+ ++ i ;
13
+ }
14
+ }
15
+ return cnt >= p ;
16
+ }
17
+
18
+ while ( l < r ) {
19
+ int mid = ( l + r ) >> 1 ;
20
+ if ( check ( mid ) ) {
21
+ r = mid ;
22
+ } else {
23
+ l = mid + 1 ;
24
+ }
25
+ }
26
+
27
+ return l ;
28
+ }
29
+ }
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ /**
3
+ * @param Integer[] $nums
4
+ * @param Integer $p
5
+ * @return Integer
6
+ */
7
+ function minimizeMax ($nums , $p ) {
8
+ sort ($nums );
9
+ $n = count ($nums );
10
+ $l = 0 ;
11
+ $r = $nums [$n - 1 ] - $nums [0 ] + 1 ;
12
+
13
+ $check = function ($diff ) use ($nums , $n , $p ) {
14
+ $cnt = 0 ;
15
+ for ($i = 0 ; $i < $n - 1 ; ++ $i ) {
16
+ if ($nums [$i + 1 ] - $nums [$i ] <= $diff ) {
17
+ ++ $cnt ;
18
+ ++ $i ;
19
+ }
20
+ }
21
+ return $cnt >= $p ;
22
+ };
23
+
24
+ while ($l < $r ) {
25
+ $mid = intdiv ($l + $r , 2 );
26
+ if ($check ($mid )) {
27
+ $r = $mid ;
28
+ } else {
29
+ $l = $mid + 1 ;
30
+ }
31
+ }
32
+
33
+ return $l ;
34
+ }
35
+ }
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ func minimizeMax( _ nums: [ Int ] , _ p: Int ) -> Int {
3
+ var nums = nums. sorted ( )
4
+ let n = nums. count
5
+ var l = 0
6
+ var r = nums [ n - 1 ] - nums[ 0 ] + 1
7
+
8
+ func check( _ diff: Int ) -> Bool {
9
+ var cnt = 0
10
+ var i = 0
11
+ while i < n - 1 {
12
+ if nums [ i + 1 ] - nums[ i] <= diff {
13
+ cnt += 1
14
+ i += 2
15
+ } else {
16
+ i += 1
17
+ }
18
+ }
19
+ return cnt >= p
20
+ }
21
+
22
+ while l < r {
23
+ let mid = ( l + r) >> 1
24
+ if check ( mid) {
25
+ r = mid
26
+ } else {
27
+ l = mid + 1
28
+ }
29
+ }
30
+
31
+ return l
32
+ }
33
+ }
You can’t perform that action at this time.
0 commit comments