阿里2023春招笔试
(Author:DH)
第一题
给定一个环形数组,你需要切两刀,把它切成两段,使得两段的元素之和相等。请问有多少种切割方案?
输入描述
1 |
|
输出描述
1 |
|
输入
1 |
|
输出
1 |
|
说明
1 |
|
题解
切成两段且相等,也就是说每一段的值都是sum/2.题意可以转化成求多少个区间的和为sum/2,可以利用前缀和 + 哈希表来求解。
第二题
n个学生围成一圈,编号从1到n。
每个学生将从1开始报数,报到素数的人出列,剩下的人继续报数。试求最终留下来的人的编号是多少。
输入描述
1 |
|
输出描述
1 |
|
输入
1 |
|
输出
1 |
|
说明
1 |
|
题解
经典的约瑟夫环问题,额外判断一下素数即可
第三题
给定一个数组,你可以进行最多k次以下操作:
选择一个大于1的元素ai,使得ai除以它的一个素因子p。
试求操作结束后,数组的所有元素之和的最小值是多少
输入描述
1 |
|
输出描述
1 |
|
输入
1 |
|
输出
1 |
|
说明
1 |
|
题解
利用贪心的思想,选k个数字较少数量最大的数
这里可以用堆
阿里2023春招笔试
https://tech.jasonczc.cn/2023/job/alibaba-2023-3-27/