lc-day5

题外话

不要学地理,会变得不幸!注册一个傻逼esri账户,各种给我报错,我的电脑一碰就错,同学的电脑一试就行,我真的杀人的心都有了,我弄了三节课一直报错(有心栽花),同学w在那边看漫画边弄(还是我指点的),一节课就弄好了(无心插柳)。最后下午还是用w的电脑弄好的。。地理信息真的是个傻逼专业,建议关了

318. 最大单词长度乘积

题目

这个题乍一看没思路,想清楚了其实很简单,就是一个位运算预处理,然后就是常规遍历。剩下的都是一些细节处理

如何快速检测两个单词有没有重复字母?答案是哈希化处理。创建一个26位的数字,记录每个字母是否在哈希表中出现过,如果出现则设为1,没有出现就是0,这样预处理万所有单词后,枚举所有的情况,如果有两个单词的哈希值“相与”,如果结果为0则证明满足要求

细节:lc对c++及其不友好,稍微没写严谨就报错,比如(int)(words[i].size() * words[j].size())这行代码,多加了两对括弧才能开始跑代码,真的恶心

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
public:
int maxProduct(vector<string>& words) {
vector<int> state;
for(auto &word : words){
int num = 0;
for(auto &c : word){
num |= 1 << (c - 'a');
}
state.push_back(num);
}
int res = 0;
for(int i = 0; i < words.size(); i++){
for(int j = i + 1; j < words.size(); j++){
if((state[i] & state[j]) == 0)
res = max(res, (int)(words[i].size() * words[j].size()));
}
}
return res;
}
};

珍爱生命,远离c++

再说一点题外话吧

学校的课程一点用都没有,纯纯的耽误时间,我有这些功夫,刷题八股文项目,拿一个200k的offer(秋招群里有两个二三本的人都拿到了,他们刷的题还没我多)轻轻松松,每天怀着上坟的心情上课,我还要写学校布置的作业,还要跟专业老师配合,还要听对开发毫无卵用的线代,概率论,写他们的作业,让他们侵占我的学习时间,我感觉我好伟大,顶着这么多debuff现在11点还在这写lc和博客,睡前还得听英语,明天早晨7点多起来继续还得的刷lc,看js。我越来越搞不懂我自己了吗?不,恰恰相反,我太清楚我这个时间点要做什么了,所以对未达标很痛苦 。我渴望有一天能活的纯粹一点

没啥说的了,生命不息,圣战(run)不止