File tree Expand file tree Collapse file tree 1 file changed +25
-0
lines changed
Problems/27-Ways-to-Make-a-Fair-Array Expand file tree Collapse file tree 1 file changed +25
-0
lines changed Original file line number Diff line number Diff line change
1
+ function waysToMakeFair ( nums : number [ ] ) : number {
2
+ const n : number = nums . length ;
3
+ nums . unshift ( 0 ) ;
4
+ let leftEven : number [ ] = new Array ( n + 1 ) . fill ( 0 ) ;
5
+ let leftOdd : number [ ] = new Array ( n + 1 ) . fill ( 0 ) ;
6
+ let leftEvenSum = 0 ,
7
+ leftOddSum = 0 ;
8
+ for ( let i = 1 ; i <= n ; i ++ ) {
9
+ if ( i % 2 === 0 ) leftEvenSum += nums [ i ] ;
10
+ else leftOddSum += nums [ i ] ;
11
+ leftEven [ i ] = leftEvenSum ;
12
+ leftOdd [ i ] = leftOddSum ;
13
+ }
14
+ let rightEvenSum = 0 ,
15
+ rightOddSum = 0 ;
16
+ let res = 0 ;
17
+ for ( let i = n ; i >= 1 ; i -- ) {
18
+ if ( leftEven [ i - 1 ] + rightOddSum === leftOdd [ i - 1 ] + rightEvenSum ) {
19
+ res ++ ;
20
+ }
21
+ if ( i % 2 === 0 ) rightEvenSum += nums [ i ] ;
22
+ else rightOddSum += nums [ i ] ;
23
+ }
24
+ return res ;
25
+ }
You can’t perform that action at this time.
0 commit comments