博客
关于我
Leetcode 318 最大单词长度乘积 (字符串用位运算预处理在O(1)时间判断两个字符串没有相同字符)
阅读量:246 次
发布时间:2019-03-01

本文共 727 字,大约阅读时间需要 2 分钟。

直接枚举,时间复杂度是O(N^2L), 因为判断两个字符串是否有相同的字符,需要O(L)的时间

用位运算将字符串映射到一个int,如果完全没有重复的字符,那么这两个int &后为0

class Solution {public:    int map(const string& s) {        int res = 0;        for (auto c : s)            res |= 1 << (c - 'a');        return res;    }    int maxProduct(vector
& words) { int n = words.size(); vector
bitmap(n, 0); for (int i = 0; i < n; i++) bitmap[i] = map(words[i]); int res = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < i; j++) { if ((bitmap[i] & bitmap[j]) == 0 && words[i].size() * words[j].size() > res) res = words[i].size() * words[j].size(); } } return res; }};

 

转载地址:http://fdqv.baihongyu.com/

你可能感兴趣的文章
MySQL支撑百万级流量高并发的网站部署详解
查看>>
MySQL改动rootpassword的多种方法
查看>>
mysql数据分组索引_MYSQL之索引配置方法分类
查看>>
mysql数据取差,mysql屏蔽主外键关联关系
查看>>
MySQL数据和Redis缓存一致性方案详解
查看>>
MySQL数据和Redis缓存一致性方案详解
查看>>
Mysql数据库 InnoDB存储引擎中Master Thread的执行流程
查看>>
MySQL数据库 范式
查看>>
Mysql数据库B-Tree索引
查看>>
mysql数据库io空闲_mysql数据库磁盘io高的排查
查看>>
mysql数据库root密码忘记,查看或修改的解决方法
查看>>
MySQL数据库SQL注入靶场sqli通关实战(附靶场安装包)
查看>>
MYSQL数据库下载安装(Windows版本)
查看>>
MySQL数据库与Informix:能否创建同名表?
查看>>
mysql数据库中的数据如何加密呢?mysql8.0自带新特性
查看>>
MySQL数据库优化
查看>>
MySQL数据库优化总结
查看>>
MySQL数据库入门看这一篇文章就够了
查看>>
Mysql数据库函数contac_函数:函数删除操作语法&使用例——《mysql 从入门到内卷再到入土》...
查看>>
mysql数据库命令备份还原
查看>>