Skip to content

Commit 7db4c63

Browse files
committed
add 1664 ts solution
1 parent 8cbb2a6 commit 7db4c63

File tree

1 file changed

+25
-0
lines changed
  • Problems/27-Ways-to-Make-a-Fair-Array

1 file changed

+25
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
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+
}

0 commit comments

Comments
 (0)