# 0318. Maximum Product of Word Lengths ###### tags: `Leetcode` `Medium` `Bit Manipulation` Link: https://leetcode.com/problems/maximum-product-of-word-lengths/ ## 思路 $O(N^2+L)$ $O(N)$ $N$ is a number of words and $L$ is a total length of all words together 先用bit mask表示每个word都有哪些字母 然后再比较找出max Product ## Code ```java= class Solution { public int maxProduct(String[] words) { int max = 0; int n = words.length; int[] masks = new int[n]; for(int i=0; i<n; i++){ int mask = 0; for(char c:words[i].toCharArray()){ mask |= 1<<(c-'a'); } masks[i] = mask; } for(int i=0; i<n; i++){ for(int j=i+1; j<n; j++){ if((masks[i]&masks[j])==0){ max = Math.max(max, words[i].length()*words[j].length()); } } } return max; } } ```