阿里工程研发实习笔试2023-04-03

还记得20年做阿里的笔试题,一个是普通 BFS,一个是普通 set,两三百百刷题量就可以秒杀。

但现在,不仅难度提升,题量还变大,而且还增加了考点巨细无比的选择题。

时过境迁,校招笔试题已经卷到如此地步了,不得不让人唏嘘....

T1 黄牌警告,红牌下场

一个球队有n个球员,已知他们一共接受了x张黄牌,y张红牌。

当一个球员满足以下条件之一时会立刻下场:

1. 接受了2张黄牌

2. 接受了1张红牌

请问已知以上信息的前提下,当前能上场的球员最多有多少人?最少有多少人?共有q次查询。

q <= 1e4, 1 <= n <= 1e9, 0 <= x, y <= 1e9

输入:

4

2 2 1

3 2 0

3 0 2

1000000000 0 0

输出:

1 0

3 2

1 1

1000000000 1000000000


最少很好算,n - int(x / 2) - y 即可。

最大的情况是:将黄牌尽可能的发个每一个人,然后剩余的 x - n 张发给没有发红牌的人(n - y 个里面选择 x - n 个)。

T2 矩阵染色问题

给定一个n行m列的矩阵,其中一些方格被染成了红色,其余方格为初始的白色。

现在定义 f(i, j) 为:若将第i行、第j列的方格染白,当前矩阵的红色连通块数量。

请你求出每个 f(i,j) 的值。

1 <= n,m <= 40


暴力枚举每一个方格,修改后求红色连通块个数(DFS)。求解连通块个数可以参考:https://leetcode.cn/problems/number-of-islands/description/

复杂度 O(n^2m^2)。

T3 权值不超过 k 的连续子数组数量

我们定义一个数组的权值为:所有元素乘积的因子数量。例如,[2,6]的权值为6,因为2*6=12,12有6个因子:11,2,3,4,6,12}

现在给定一个数组,试求该数组有多少连续子数组的权值不小于K?

1 <= n, a_i <= 2e5, 1 <= k <= 1e9


所有元素的乘积的因子数量与质因数分解后的指数有关。

一个数 x 可以被分解为若干个质因数的乘积:

x = p_1^{c_1} \times p_2^{c_2} \times \cdots \times p_k^{c_k}

它的因子个数是:

(c_1+1)\times (c_2 + 1) \times \cdots \times (c_k+1)

所以,我们通过滑动窗口维护其中所有数字乘积的质因数的指数(用一个数组或哈希表),同时维护因子数量(cnt)。

对于每个右端点 i,维护最小的左端点 j,使得 [i,j] 乘积因子数目小于 k。那么对于 i 来说,共有 j 种方案满足要求,例如 [0, i], [1, i], ... [j-1, i]。

时间复杂度为 O(n\sqrt n),主要是质因数分解的复杂度。

int main() {
    int n, k;
    cin >> n >> k;
    vector<int> a(n);
    unordered_map<int, int> mp;
    ll cnt = 1, res = 0;
    auto addv = [&](int x, int t) {
        for (int i = 2; i * i <= x; i++) {
            while (x % i == 0) {
                cnt /= (mp[i] + 1);
                mp[i] += t;
                cnt *= (mp[i] + 1);
                x /= i;
            }
        }
        if (x > 1) {
            cnt /= (mp[x] + 1);
            mp[x] += t;
            cnt *= (mp[x] + 1);
        }
    };
    for (int i = 0, j = 0; i < n; i++) {
        cin >> a[i];
        addv(a[i], 1);
        while (j <= i && cnt >= k) {
            addv(a[j], -1);
            j++;
        }
        res += j;
    }
    cout << res << "\n";
}
#笔试##软件开发2023笔面经##阿里#
今夕的求职日记 文章被收录于专栏

记录2023年-2024年的笔试、面试问题~

全部评论
想问下第一问的代码时类似这样的吗 public static void query(int n, int x, int y) { int min, max = 0; min = n - y - x/2; int yellowRemain = Math.max(0, x - n); max = yellowRemain + n - y; System.out.println(max + " " + min); }
点赞 回复 分享
发布于 2023-08-05 23:56 美国
第三题厉害了,我还以为连续子数组是必须要从0开始的子数组呢
点赞 回复 分享
发布于 2023-04-05 15:10 湖南
捞简历,杭州-阿里巴巴-淘菜菜技术部,不泡池子,欢迎私信
点赞 回复 分享
发布于 2023-04-04 18:00 浙江
打个广告,阿里巴巴数字供应链2024届实习生正在急招,欢迎来撩
点赞 回复 分享
发布于 2023-04-04 16:29 浙江
第三题思路真妙啊,只想到了暴力解,还能这样用滑动窗口
点赞 回复 分享
发布于 2023-04-04 15:51 四川
up主太强了,最后一题看到的时候,完全没思路
点赞 回复 分享
发布于 2023-04-04 09:40 广东
太强了
点赞 回复 分享
发布于 2023-04-04 03:17 江苏
优秀
点赞 回复 分享
发布于 2023-04-04 00:04 辽宁

相关推荐

04-16 16:33
已编辑
门头沟学院 产品经理
一、什么是AICoding考察?不是写复杂代码!美团会给出一个贴近真实生活/学习场景的小命题,你可以借助AI工具,用自然语言快速做出一个功能、页面或产品Demo。没有技术背景也能上手。二、哪些岗位会收到AICoding考察?【转正实习】产品经理【转正实习生】AI产品经理此外,部分校招岗位也可能在面试前或面试中设置AICoding题目,牛友们记得及时留意邮件通知。三、出题形式(3种)伴随笔试一起发面试官邀约面试时出题面试过程中实时出题具体形式以实际收到的邮件为准~四、AICoding和笔试的关系?二者不互相替代。你必须先有笔试成绩,才能进入后续面试环节。AICoding作品是额外加分项。五、时间限制与迭代机制统一出题:48小时内提交作品链接提交后仍可在NoCode或其他平台继续优化,重新部署更新即可其余出题形式以邮件或面试官要求为准六、面试官会看到作品吗?会!你的AICoding作品会呈现给面试官,并可能在面试环节中讨论:设计思路作答细节未来的迭代方向七、考察核心是什么?(重点)目标不是找会写代码的产品经理,而是通过AICoding考察你的产品思维。评分维度:✅需求理解✅产品设计✅审美品味✅迭代意识三大评分标准:创新性实用性完整性好作品≠只是能运行更要有:清晰思路+贴合场景的设计+细节感八、搭建流程小技巧推荐分步走:先确定页面布局再跑通本地交互再接入数据库最后优化细节+一键部署九、推荐工具任意AICoding工具(自然语言生成代码/页面)或使用美团自研的零代码AI编程工具:NoCode
查看20道真题和解析
点赞 评论 收藏
分享
4.3一面&nbsp;1.&nbsp;对&nbsp;AI&nbsp;是怎样理解的2.&nbsp;分享一些比较好用的&nbsp;AI&nbsp;工具3.&nbsp;主要用&nbsp;AI&nbsp;解决哪些问题4.&nbsp;项目中很多场景都可以通过&nbsp;AI&nbsp;完成,你怎么看待?未来在哪些方面提升自己竞争力5.&nbsp;自己有尝试过玩一玩(AI&nbsp;相关工具)吗6.&nbsp;算法题:二分查找7.&nbsp;算法题:盛水最多的容器8.&nbsp;Flexbox&nbsp;布局基本原理9.&nbsp;使用&nbsp;Flex&nbsp;实现单个元素水平垂直居中的方案10.&nbsp;对前端主流技术栈的了解11.&nbsp;Vue&nbsp;中&nbsp;keep-alive&nbsp;的作用与原理12.&nbsp;使用的&nbsp;Vue&nbsp;版本13.&nbsp;Vue3&nbsp;的生命周期钩子14.&nbsp;页面加载前先请求接口,接口完成后再渲染页面的实现方式15.&nbsp;介绍个人收获&nbsp;/&nbsp;成就感最高的项目(智能对话平台)16.&nbsp;AI&nbsp;对话平台流式输出使用的技术(SSE&nbsp;而非&nbsp;WebSocket)17.&nbsp;SSE&nbsp;的好处18.&nbsp;SSE&nbsp;的工作原理19.&nbsp;SSE&nbsp;长连接长时间保持是否会掉线、断开20.&nbsp;SSE&nbsp;心跳保活机制的具体实现反问面试评价(面试官说主要是算法理解的不够深入,还建议多多用ai)隔了个清明4.7约二面&nbsp;发了一个aicoding的题目,ai自动生成周报,两小时,在面试前完成即可4.9二面1.&nbsp;简单做一下自我介绍2.&nbsp;你现在是在找实习吗?3.&nbsp;目前手头有实习offer吗?4.&nbsp;你希望找什么样的实习岗位?(算法/AI/开发)5.&nbsp;为什么不做算法相关实习,反而选前端?6.&nbsp;你的前端知识是怎么学的?7.&nbsp;这两个前端项目都是练手项目吗?8.&nbsp;第一个项目你在里面具体做了什么?9.&nbsp;为什么选用Deepseek大模型?10.&nbsp;项目里关键技术点有哪些?AI部分怎么解决?11.&nbsp;项目代码都是AI生成的吗?占比多少?12.&nbsp;你怎么让AI生成代码、怎么把控质量?13.&nbsp;AI生成不符合预期、甚至“欺骗”你,你怎么处理?14.&nbsp;性能优化也是AI帮你做的吗?优化代码是谁写的?15.&nbsp;语音里的噪声你怎么处理?需要处理吗?16.&nbsp;如果让AI做前端语音降噪,你会怎么让它实现?17.&nbsp;你怎么确保AI给的降噪方案是靠谱的?18.&nbsp;你怎么测试验收这个项目?从哪些维度判断符合预期?19.&nbsp;有没有考虑弱网、噪音、真实使用场景的问题?20.&nbsp;你怎么理解闭包?21.&nbsp;实际项目中你怎么使用闭包?22.&nbsp;了解Webpack吗?Vite和Webpack有什么区别?23.&nbsp;你做过图像处理相关研究?具体做了什么?24.&nbsp;相比传统机器学习,AI时代聚类有什么优势?25.&nbsp;图片不清晰,用AI怎么变清晰?有什么方案?26.&nbsp;你用过哪些AI工具?怎么用的?27.&nbsp;部署过LLM相关服务吗?AI-Coaching&nbsp;笔试题(AI自动生成周报)28.&nbsp;你怎么理解这个需求?29.&nbsp;功能拆解成哪几个模块?30.&nbsp;数据采集通过什么方式?采集哪些关键信息?31.&nbsp;哪些步骤AI不能自主执行,必须人工介入?32.&nbsp;空数据/无工作记录怎么处理?33.&nbsp;简单解释一下工程目录结构,每个TS文件作用?34.&nbsp;为什么要设计base&nbsp;collector基类?好处是什么?35.&nbsp;数据处理模块具体处理哪些内容?36.&nbsp;你觉得这个项目还有哪些可以改进的地方?37.&nbsp;你的职业生涯规划是什么?38.&nbsp;AI发展很快,Java/安卓/IOS/鸿蒙都要会,你怎么应对?39.&nbsp;怎么保持对AI代码的判断力?看不懂怎么办?40.&nbsp;短时间内怎么快速提升技术认知?41.&nbsp;你现在人在哪?实习周期能多长?42.&nbsp;如果提供实习但没有转正机会,你怎么看?43.&nbsp;你觉得转正重要还是实习重要?44.&nbsp;有没有想过考公、国企这类更稳妥的职业?反问对实习生有什么要求?更看重哪些能力?实习生的培养方案是怎样的?结合我今天表现,给我一些前端学习建议?问如果有机会进美团没有转正,是这边前端需求变少了吗?(面试官说不是,只是了解一下个人情况)这轮通过后还有后续面试吗?(面试官说后面还会有流程)面试结果大概多久出?(一周内)感觉二面表现一般,现在还没有结果,可能没戏了
讲原则的小黄鸭不愿吃...:面试官好心没告诉你真相,其实前后端需求确实少了,现在有前后端融合全栈道趋势
点赞 评论 收藏
分享
评论
14
50
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务