博客
关于我
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索引最左匹配原则理解以及常见的sql使用的索引情况的实测
查看>>
Mysql索引类型
查看>>
MySQL索引背后的数据结构及算法原理
查看>>
mysql索引能重复吗_mysql “索引”能重复吗?“唯一索引”与“索引”区别是什么?...
查看>>
Mysql索引(4):索引语法
查看>>
mysql级联删除_Mysql笔记系列,DQL基础复习,Mysql的约束与范式
查看>>
mysql经常使用命令
查看>>
MySQL经常使用技巧
查看>>
mysql给账号授权相关功能 | 表、视图等
查看>>
MySQL缓存使用率超过80%的解决方法
查看>>
Mysql缓存调优的基本知识(附Demo)
查看>>
mysql网站打开慢问题排查&数据库优化
查看>>
mysql网络部分代码
查看>>
mysql联合索引的最左前缀匹配原则
查看>>
mysql自动化同步校验_Shell: 分享MySQL数据同步+主从复制自动化脚本_20190313_七侠镇莫尛貝...
查看>>
mysql自增id超大问题查询
查看>>
MySQL自带information_schema数据库使用
查看>>
MySQL获取分组后的TOP 1和TOP N记录
查看>>
mysql虚拟列表_动态网页制作-官方版合集下载-多特
查看>>
MySQL蜜罐反制获取攻击者信息
查看>>