File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change
1
+ // Author: Phuong Lam
2
+
3
+ /**
4
+ * @param {number[] } nums
5
+ * @return {number }
6
+ */
7
+ var waysToMakeFair = function ( nums ) {
8
+ var total = 0
9
+
10
+ var lo = 0 // left odd
11
+ var le = 0 // left even
12
+ var ro = 0 // right odd
13
+ var re = 0 // right even
14
+
15
+ // when ignore 1 element => right odd mean i % 2 === 0
16
+ for ( i = 0 ; i < nums . length ; i ++ ) {
17
+ if ( i % 2 === 0 ) ro += nums [ i ]
18
+ else re += nums [ i ]
19
+ }
20
+
21
+ // remove position i, recalculate left - right even-odd
22
+ for ( i = 0 ; i < nums . length ; i ++ ) {
23
+ // recalculate left
24
+ if ( i > 0 ) {
25
+ if ( i % 2 === 0 ) lo += nums [ i - 1 ]
26
+ else le += nums [ i - 1 ]
27
+ }
28
+
29
+ // recalculate right
30
+ if ( i % 2 === 0 ) ro -= nums [ i ]
31
+ else re -= nums [ i ]
32
+
33
+ // calc total even & odd
34
+ if ( lo + ro === le + re ) total ++
35
+ }
36
+ return total
37
+ }
You can’t perform that action at this time.
0 commit comments