LCR005-最大单词长度乘积

求解代码

java 复制代码
    public int maxProduct(String[] words) {
        int n = words.length;
        int[] masks = new int[n];
        int[] lens = new int[n]; 
        for (int i = 0; i < n; i++) {
            lens[i] = words[i].length(); 
            for (char c : words[i].toCharArray()) {
                masks[i] |= 1 << (c - 'a');
            }
        }
        int max = 0;
        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, lens[i] * lens[j]); 
                }
            }
        }
        return max;
    }

小贴士

遍历每个字符串,用一个 int 整数(掩码)表示该字符串包含的字符。

解释一下:

如果二进制第c-'a'位为 1,则表示包含字符c

比如包含a则第 0 位为 1,包含b则第 1 位为 1。

相关推荐
致Great6 分钟前
Claude Code 上线 Dynamic Workflows:一句话调度 1000 个子智能体并行干活
java·linux·服务器
yujunl7 分钟前
NetCore常用的中间件说明
开发语言
一个做软件开发的牛马8 分钟前
Java 常用类:String不可变、新时间API与包装类陷阱
java·后端
yurenpai(27届找实习中)20 分钟前
redis_点评(25.附件店铺—把数据库里的店铺按【类型分组】,批量导入Redis 的 GEO 地理位置结构)
java·redis·缓存
云烟成雨TD28 分钟前
Spring AI Alibaba 1.x 系列【66】Graph 长期记忆
java·人工智能·spring
Javatutouhouduan44 分钟前
Java面试大厂真题汇总!
java·java面试·java面试题·后端开发·java编程·java架构师·java八股文
maomao大哥闯天下1 小时前
K8s对象deployment、job、service应用详解
java·容器·kubernetes
闪电悠米1 小时前
黑马点评-优惠券秒杀-05_local_lock_cluster_problem
java·spring boot·redis·缓存
IronMurphy1 小时前
SSM拷打第二讲!!!
java·spring·mybatis
Hanniel1 小时前
Python 元类(下):进阶与实战建议
开发语言·python