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;
    }
}
相关推荐
漫随流水5 分钟前
leetcode算法(145.二叉树的后序遍历)
数据结构·算法·leetcode·二叉树
华如锦8 分钟前
四:从零搭建一个RAG
java·开发语言·人工智能·python·机器学习·spring cloud·计算机视觉
Tony_yitao10 分钟前
22.华为OD机试真题:数组拼接(Java实现,100分通关)
java·算法·华为od·algorithm
JavaGuru_LiuYu11 分钟前
Spring Boot 整合 SSE(Server-Sent Events)
java·spring boot·后端·sse
爬山算法15 分钟前
Hibernate(26)什么是Hibernate的透明持久化?
java·后端·hibernate
彭于晏Yan17 分钟前
Springboot实现数据脱敏
java·spring boot·后端
漫随流水17 分钟前
leetcode算法(94.二叉树的中序遍历)
数据结构·算法·leetcode·二叉树
luming-0222 分钟前
java报错解决:sun.net.utils不存
java·经验分享·bug·.net·intellij-idea
北海有初拥30 分钟前
Python基础语法万字详解
java·开发语言·python
alonewolf_9933 分钟前
Spring IOC容器扩展点全景:深入探索与实践演练
java·后端·spring