Skip to content

Commit bd7a9b4

Browse files
committed
Time: 5 ms (70.77%), Space: 56.7 MB (6.69%) - LeetHub
1 parent 9f6d16f commit bd7a9b4

File tree

1 file changed

+11
-17
lines changed

1 file changed

+11
-17
lines changed

Diff for: 3753-maximum-difference-between-even-and-odd-frequency-i/3753-maximum-difference-between-even-and-odd-frequency-i.js

+11-17
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,20 @@
22
* @param {string} s
33
* @return {number}
44
*/
5-
var maxDifference = function(s) {
5+
var maxDifference = function (s) {
66
let freq = new Array(26).fill(0);
77
for (const char of s) {
8-
freq[char.charCodeAt(0)-'a'.charCodeAt(0)]++;
8+
freq[char.charCodeAt(0) - 'a'.charCodeAt(0)]++;
99
}
10-
let filtered = freq.filter(e => e!=0).sort((a,b)=>b-a);
11-
let maxOdd = 0;
12-
let maxEven = 0;
13-
for (let i = 0; i < filtered.length; i++) {
14-
if (filtered[i]%2!=0) {
15-
maxOdd = filtered[i]
16-
break;
17-
}
18-
}
19-
for (let i = filtered.length-1; i>=0; i--) {
20-
if (filtered[i]%2==0) {
21-
maxEven = filtered[i]
22-
break;
10+
let maxOdd = 0, minEven = Infinity;
11+
for (const count of freq) {
12+
if (count === 0) continue;
13+
if (count % 2 === 0) {
14+
minEven = Math.min(minEven, count);
15+
} else {
16+
maxOdd = Math.max(maxOdd, count);
2317
}
24-
2518
}
26-
return maxOdd-maxEven;
19+
20+
return maxOdd - minEven;
2721
};

0 commit comments

Comments
 (0)