阿里云0309笔试、拼多多0309笔试、蚂蚁0309笔试

阿里云

选择若干(单选,多选,分值:3 分* 15)+编程*3(分值:15,15,25),选择不是太好做。

  1. 为什么要默认大家都知道你说的“排列”就是从1开始呢?如果把题目说明白一点,是怕大家都用一维dp做出来吗?
  2. 不会, 暴力骗了25%;
  3. 不会,暴力加贪心骗了75%;

拼多多

编程*4(分值:25,25,25,25)。

  1. 模拟,注意负数最大输出时取绝对值;
  2. 二维dp只过了66%,考虑60%的数据小于10^3, 对这部分数据暴力,其余部分沿用二维dp,最终过了80%;
  3. 二维dp,dp[i][j]表示前i页书用j小时去读,最大的知识量;注意很多状态都是无用的,给定当前页数为k时,遍历时间j的时候定义时间的上界为min(t, k),下界为 (k + 1)/ 2;
  4. 排序放置每个人的座位,贪心,按照入场顺序二分查找当前身高可以坐的最右边界,过了44%。应该是贪心的方式出问题了。

蚂蚁

选择若干(单选,多选,分值:3分 * 15)+编程*3(分值:15,15,25),选择有一些考察库函数含义的,如Arrays.hashCode(),Arrays.equals()..

  1. 签到题,按照题意模拟每个字符情况即可,唯一可能需要注意的就是字符转ASCII知道如何计算
int ascii = ch - '0' + 48;

2. 建树,采用邻接表(为了确认左右儿子,每个节点的子节点采用最小堆记录)。从根节点开始BFS构建坐标,用HashMap存储节点坐标,key为节点编号,value为坐标,用临时布尔变量标记是否创立了左儿子,同时用visited数组标记防止重复访问。最后对每个查询调用HashMap可以O(1)计算。

PriorityQueue<Integer>[] list = new PriorityQueue[n];

3. 题意比较明确。暴力可以过20%case,考虑O(n * logn)的做法,排序数组,遍历nums[i]的倍数与所在区间,不断累加。做的时候没调试明白..

#拼多多求职进展汇总##阿里求职进展汇总#
全部评论
饿了么给了我虚假的信心。阿里云又把我打回了现实
3 回复 分享
发布于 03-09 16:40 上海
拼多多第二题感觉:如果前缀和最小的值在前缀和最大值的后面,那只需要把前缀和最大值翻转再加上这中间的数然后取绝对值,反之亦然,所以维护前缀和最大最小值和对应下标就行 阿里云最后一题没时间改了,感觉就是找个方法快速求出(a[i]-a[j])乘(c[i]-c[j])最大值 今天这俩笔试加一起过了2,彻底g了
点赞 回复 分享
发布于 03-09 16:15 上海
第一题是真没看懂题目说的排列啥意思,给的样例也是迷中迷
点赞 回复 分享
发布于 03-09 16:17 上海
第三题需要找到倍数那个值的最左边,因为会有重复的情况出现,我也这里每调出来
点赞 回复 分享
发布于 03-09 21:40 吉林

相关推荐

评论
6
9
分享

创作者周榜

更多
牛客网
牛客企业服务