#腾讯音乐娱乐笔试#
第一题:
统计每个字符的次数c[s[i] - 'a']
ans += c[s[i]-'a'] / 2;
a = c[s[i] - 'a'] ^ 1;
ans = (ans - 26 + a)
第二题:针对每个可能的分割点进行分割,尝试构造二叉树,判断下边界条件。
第三题:
//layers是层次节点,
void goback(vector >& layers) {
for (int i = layers.size() - 1;i >= 1;--i) {
int n = layers[i].size();
for (int j = 0;j < n;j += 2) {
int lmax = layers[i][j]->left != nullptr? layers[i][j]->left->val + 1 : 1;
int rmax = layers[i][j+1]->left != nullptr? layers[i][j+1]->left->val + 1: 1;
layers[i][j]->val = max(lmax, rmax);
layers[i][j+1]->val = max(lmax, rmax);
}
}
if (layers[0][0]->left != nullptr) layers[0][0]->val = layers[0][0]->left->val + 1;
else layers[0][0]->val = 1;
}
结果为2^(tree->val) - 1 % mod。此处用快速幂计算结果。
问答题:100亿*1亿的表,,估计凉了
第一题:
统计每个字符的次数c[s[i] - 'a']
ans += c[s[i]-'a'] / 2;
a = c[s[i] - 'a'] ^ 1;
ans = (ans - 26 + a)
第二题:针对每个可能的分割点进行分割,尝试构造二叉树,判断下边界条件。
第三题:
//layers是层次节点,
void goback(vector
for (int i = layers.size() - 1;i >= 1;--i) {
int n = layers[i].size();
for (int j = 0;j < n;j += 2) {
int lmax = layers[i][j]->left != nullptr? layers[i][j]->left->val + 1 : 1;
int rmax = layers[i][j+1]->left != nullptr? layers[i][j+1]->left->val + 1: 1;
layers[i][j]->val = max(lmax, rmax);
layers[i][j+1]->val = max(lmax, rmax);
}
}
if (layers[0][0]->left != nullptr) layers[0][0]->val = layers[0][0]->left->val + 1;
else layers[0][0]->val = 1;
}
结果为2^(tree->val) - 1 % mod。此处用快速幂计算结果。
问答题:100亿*1亿的表,,估计凉了
全部评论
相关推荐
10-23 16:33
门头沟学院 Java
千千倩倩:同27给点建议,现在这个时间点可以快速看完外卖和点评,不用跟着敲,但一定要在看的时候总结每个部分的整个业务流程,对其中的实现有一个大概的印象。然后直接开始看八股,刷算法。八股和算法最好还是在项目学习中穿插着看。如果计算机基础,算法这些基础好,加上每天刻苦学习,两周可以达到勉强能面试的水平,到时候就直接海投中小厂,在约面和面试的过程中不断巩固知识。没找到实习也没关系,就当积累经验。再沉淀一波直接明年三月开始投暑期,毕竟是9本,总是有面试机会的,只要你这三个月不懈怠,面试发挥得一定不错,只要拿到一个中,大厂暑期实习,秋招就有竞争力了。总得而言,现在还有机会,但是时间非常紧张,需要你结合自己情况考虑,共勉 点赞 评论 收藏
分享
点赞 评论 收藏
分享
10-20 10:59
华南农业大学 算法工程师 点赞 评论 收藏
分享
查看11道真题和解析