Skip to content

Commit aab5ca7

Browse files
committed
Time: 10 ms (100%), Space: 64.3 MB (11.32%) - LeetHub
1 parent e743adc commit aab5ca7

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/**
2+
* @param {string[]} words
3+
* @return {number}
4+
*/
5+
var maxProduct = function(words) {
6+
let wordMap = new Map();
7+
for (let i = 0; i < words.length; i++) {
8+
let word = words[i];
9+
let bitmask = 0;
10+
words[i].split('').forEach(char => bitmask |= (1 << (char.charCodeAt(0) - 97)));
11+
if (!wordMap.has(bitmask) || wordMap.get(bitmask) < word.length) {
12+
wordMap.set(bitmask, word.length);
13+
}
14+
}
15+
let maxProduct = 0;
16+
let keys = Array.from(wordMap.keys());
17+
for (let i = 0; i < keys.length; i++) {
18+
for (let j = i + 1; j < keys.length; j++) {
19+
if ((keys[i] & keys[j]) === 0) {
20+
maxProduct = Math.max(maxProduct, wordMap.get(keys[i]) * wordMap.get(keys[j]));
21+
}
22+
}
23+
}
24+
return maxProduct;
25+
};

0 commit comments

Comments
 (0)