9.11 阿里国际笔试(工程岗)
第一题,电影的最大期待值。如果要每天都更新之前的电影到今天还有多少期待值,然后和今天的电影比,那就太麻烦了,可以把所有电影的期待值都推回到第一天,第i天的电影在第一天的期待值为ai+d*(i-1),然后用大顶堆记录,每次先更新再取堆顶即可,取出堆顶后减去d*(i-1)得到实际的期待值。这里不用考虑减去后小于0的问题,因为今天上映的电影的期待值是一定大于0的,也就是堆里面一定有一个大于0的元素。
第二题,使数组元素相等的最小次数。遍历所有元素,如果%x的值不相同(用set记录,判断size!=1),则返回-1;否则所有数除以x,因为除之后可以直接计算操作次数(除之前一次加减x,除之后一次加减1)。
这里直接说结论,把所有数组元素除x之后的结果排序,中间位置(第m*n/2个元素)就是要最终变成的数,用for循环计算操作次数即可。具体证明可以看力扣第462题,最小操作次数使数组元素相等 II。
第三题,dp+滚动数组优化过了60%。用dp[n+1][k]记录数量,具体来说,dp[i][j]表示长度为i、相邻字符不同的字符串有多少个,显然dp[i][j] = dp[i-1][j] + 25 * dp[i-1][j-1],最后结果为dp[n]的数组的和,转移过程和最后求和都需要注意取模。又显然dp[i]只与dp[i-1]有关,且n,k都是1e5级别的,所以可以用滚动数组进行优化。这个解法过了60%,超时。
正确的解法(感觉对但是没调出来)应该是,长度为n的数组有n-1个相邻字母对,相邻字母对不同的数量不超过k个,则枚举不同的相邻字母对的数量为0<=i<k。
对于确定的i,可能有C(n-1, i)种不同的选择方案,每个不同的字母对可以有25种选择,相同的字母对只能有一种选择,第一个字母有26种选择,因此每个i的总字符串数量应该有26*25^i*C(n-1, i)种,最终结果是前面这个的和。但是这种解法我没写出来,细节上估计有点问题,不知道有没有大佬过了。
第二题,使数组元素相等的最小次数。遍历所有元素,如果%x的值不相同(用set记录,判断size!=1),则返回-1;否则所有数除以x,因为除之后可以直接计算操作次数(除之前一次加减x,除之后一次加减1)。
这里直接说结论,把所有数组元素除x之后的结果排序,中间位置(第m*n/2个元素)就是要最终变成的数,用for循环计算操作次数即可。具体证明可以看力扣第462题,最小操作次数使数组元素相等 II。
第三题,dp+滚动数组优化过了60%。用dp[n+1][k]记录数量,具体来说,dp[i][j]表示长度为i、相邻字符不同的字符串有多少个,显然dp[i][j] = dp[i-1][j] + 25 * dp[i-1][j-1],最后结果为dp[n]的数组的和,转移过程和最后求和都需要注意取模。又显然dp[i]只与dp[i-1]有关,且n,k都是1e5级别的,所以可以用滚动数组进行优化。这个解法过了60%,超时。
正确的解法(感觉对但是没调出来)应该是,长度为n的数组有n-1个相邻字母对,相邻字母对不同的数量不超过k个,则枚举不同的相邻字母对的数量为0<=i<k。
对于确定的i,可能有C(n-1, i)种不同的选择方案,每个不同的字母对可以有25种选择,相同的字母对只能有一种选择,第一个字母有26种选择,因此每个i的总字符串数量应该有26*25^i*C(n-1, i)种,最终结果是前面这个的和。但是这种解法我没写出来,细节上估计有点问题,不知道有没有大佬过了。
全部评论
第三题那个解法是对的,注意快速幂里面要用long,被这个坑了
相关推荐
11-06 12:53
吉林大学 Java mikeu04:简历顶部留名字即可,你写“后端开发实习生-Java”就是把自己的方向限制死了。我建议把这揉在个人简介里,说你对后端开发充满热情就行。性别出生年份以及微信号不是必须的。
把个人简介从教育背景里拿出来,第一个写。你的个人简介有点太泛了。把“爱好中长跑”去了,加点数字(“拥有xxx年的xxx经历”),加点你最熟的几个语言或技术栈。和别人的简介区分开来。
专业技能放项目经历前面。面试官一般会优先看这个再往下看你做了什么项目来考察你是否具备这些技能。实习我不是很清楚,但像Redis, JVM, 消息模型,计算机网络这些属于基本知识。你如果了解GCP, AWS, Docker 这些实际生产工具就可以把八股知识换掉。
项目简介可以和工作内容揉在一起。项目简介还是太长了,就一句话,“开发了一个基于【1,2个主要框架】为【目标客户群体】的【产品类型】, 实现了【产品价值】”。产品价值不是功能。比如一个在线计算器,它的功能是算数,但它的价值可以是让人在没带计算器的情况下算数(可访问性)或比手算效率提升了80%。工作内容多加点数字,你这个产品有多少人用了?浏览量是多少?技术上xxx性能提升了多少%?(实在想不出来就丢给deepseek :)
11 月理论上秋招已经结束了。八股是背不完的。无脑投,刷笔试,中了面试邀请就突击面经八股,没问题的。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
