Java | Leetcode Java题解之第318题最大单词长度乘积

题目:

题解:

java 复制代码
class Solution {
    public int maxProduct(String[] words) {
        Map<Integer, Integer> map = new HashMap<Integer, Integer>();
        int length = words.length;
        for (int i = 0; i < length; i++) {
            int mask = 0;
            String word = words[i];
            int wordLength = word.length();
            for (int j = 0; j < wordLength; j++) {
                mask |= 1 << (word.charAt(j) - 'a');
            }
            if (wordLength > map.getOrDefault(mask, 0)) {
                map.put(mask, wordLength);
            }
        }
        int maxProd = 0;
        Set<Integer> maskSet = map.keySet();
        for (int mask1 : maskSet) {
            int wordLength1 = map.get(mask1);
            for (int mask2 : maskSet) {
                if ((mask1 & mask2) == 0) {
                    int wordLength2 = map.get(mask2);
                    maxProd = Math.max(maxProd, wordLength1 * wordLength2);
                }
            }
        }
        return maxProd;
    }
}
相关推荐
fchampion9 分钟前
最终一致性
java·spring·rabbitmq·github·mvc
wuqingshun31415912 分钟前
说一下什么是fail-fast
java·开发语言·jvm
wuqingshun31415917 分钟前
知道java NIO吗?和java IO有什么区别?
java·开发语言·jvm
AC赳赳老秦24 分钟前
2026多模态技术趋势预测:DeepSeek处理图文音视频多格式数据实战指南
java·人工智能·python·安全·架构·prometheus·deepseek
芒克芒克26 分钟前
深入浅出Java线程池(二)
java
Zik----30 分钟前
Leetcode22 —— 括号生成
java·开发语言
芒克芒克31 分钟前
深入浅出Java线程池(三)
java·开发语言
何中应36 分钟前
解决Jenkins界面操作非常慢的问题
java·运维·jenkins
追随者永远是胜利者39 分钟前
(LeetCode-Hot100)200. 岛屿数量
java·算法·leetcode·职场和发展·go
A懿轩A41 分钟前
【Java 基础编程】Java 常用类速查:包装类、String/StringBuilder、Math、日期类一篇搞定
java·开发语言·python·java常用类