博客
关于我
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之索引选择及优化
查看>>
mysql之联合查询UNION
查看>>
mysql之连接查询,多表连接
查看>>
mysql乐观锁总结和实践 - 青葱岁月 - ITeye博客
查看>>
mysql也能注册到eureka_SpringCloud如何向Eureka中进行注册微服务-百度经验
查看>>
mysql乱码
查看>>
Mysql事务。开启事务、脏读、不可重复读、幻读、隔离级别
查看>>
MySQL事务与锁详解
查看>>
MySQL事务原理以及MVCC详解
查看>>
MySQL事务及其特性与锁机制
查看>>
mysql事务理解
查看>>
MySQL事务详解结合MVCC机制的理解
查看>>
MySQL事务隔离级别:读未提交、读已提交、可重复读和串行
查看>>
MySQL事务隔离级别:读未提交、读已提交、可重复读和串行
查看>>
webpack css文件处理
查看>>
mysql二进制包安装和遇到的问题
查看>>
MySql二进制日志的应用及恢復
查看>>
mysql互换表中两列数据方法
查看>>
mysql五补充部分:SQL逻辑查询语句执行顺序
查看>>