File tree 1 file changed +10
-28
lines changed
1 file changed +10
-28
lines changed Original file line number Diff line number Diff line change 5
5
*/
6
6
var maxOperations = function ( nums , k ) {
7
7
nums . sort ( ( a , b ) => a - b ) ;
8
- function binarySearch ( i , j , v ) {
9
- while ( i <= j ) {
10
- const mid = Math . ceil ( ( i + j ) / 2 ) ;
11
- if ( nums [ mid ] === v ) {
12
- return mid ;
13
- } else if ( nums [ mid ] < v ) {
14
- i = mid + 1 ;
15
- } else {
16
- j = mid - 1 ;
17
- }
18
- }
19
- return - 1 ;
20
- }
21
8
22
9
let result = 0 ;
23
10
let i = 0 ;
24
- while ( nums . length > 1 && i < nums . length - 1 ) {
25
- if ( nums [ i ] >= k ) {
26
- break ;
11
+ let j = nums . length - 1 ;
12
+ while ( i < j ) {
13
+ if ( nums [ i ] + nums [ j ] === k ) {
14
+ i ++ ;
15
+ j -- ;
16
+ result ++ ;
17
+ } else if ( nums [ i ] + nums [ j ] < k ) {
18
+ i ++ ;
19
+ } else {
20
+ j -- ;
27
21
}
28
-
29
- if ( k - nums [ i ] >= nums [ i ] ) {
30
- const target = binarySearch ( i + 1 , nums . length - 1 , k - nums [ i ] ) ;
31
- if ( target !== - 1 ) {
32
- nums . splice ( target , 1 ) ;
33
- nums . splice ( i , 1 ) ;
34
- result ++ ;
35
- continue ;
36
- }
37
- }
38
- i ++ ;
39
22
}
40
-
41
23
return result ;
42
24
} ;
You can’t perform that action at this time.
0 commit comments