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;
    }
}
相关推荐
刀法如飞7 小时前
开箱即用的 DDD(领域驱动设计)工程脚手架,基于 Spring Boot 4.0.1 和 Java 21
java·spring boot·mysql·spring·设计模式·intellij-idea
我是苏苏7 小时前
Web开发:C#通过ProcessStartInfo动态调用执行Python脚本
java·服务器·前端
JavaGuide7 小时前
SpringBoot 官宣停止维护 3.2.x~3.4.x!
java·后端
tkevinjd8 小时前
动态代理
java
Knight_AL8 小时前
Spring 事务管理:为什么内部方法调用事务不生效以及如何解决
java·后端·spring
4***17279 小时前
Spring Boot中Tomcat配置
java
Chan169 小时前
场景题:CPU 100% 问题怎么排查?
java·数据库·redis·后端·spring
qq_3363139310 小时前
java基础-IO流(网络爬虫/工具包生成假数据)
java·爬虫·php
桦说编程10 小时前
滑动窗口限流器的演进之路:从调度器实现到 Packed CAS
java·后端·性能优化