Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit d53c989

Browse files
authored
Solution for problem 1664 (fishercoder1534#139)
* Add solution for problem 1664 * Add js file
1 parent 07f97cb commit d53c989

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ _If you like this project, please leave me a star._ ★
88

99
| # | Title | Solutions | Video | Difficulty | Tag
1010
|-----|----------------|---------------|--------|-------------|-------------
11+
|1664|[Ways to Make a Fair Array](https://leetcode.com/problems/ways-to-make-a-fair-array/)|[Javascript](./javascript/_1664.js) ||Medium|Greedy|
1112
|1663|[Smallest String With A Given Numeric Value](https://leetcode.com/problems/smallest-string-with-a-given-numeric-value/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_1663.java) ||Medium|Greedy|
1213
|1662|[Check If Two String Arrays are Equivalent](https://leetcode.com/problems/check-if-two-string-arrays-are-equivalent/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_1662.java) ||Easy|String|
1314
|1658|[Minimum Operations to Reduce X to Zero](https://leetcode.com/problems/minimum-operations-to-reduce-x-to-zero/)|[Javascript](./javascript/_1658.js)||Medium|Greedy|

javascript/_1664.js

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
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+
}

0 commit comments

Comments
 (0)