首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
牛客804207695号
University of Illinois at Urbana-Champaign Java
发布于江苏
关注
已关注
取消关注
@林小白zii:
2023 蚂蚁金服笔试题 蚂蚁笔试 0919
笔试时间:2023年9月19日 秋招 第一题 题目:最优化存储 (四) 支付宝服务亿级消费者,每个支付宝的用户有自己独特的信息,假设每个会员存储的成本为ai;现在有n个会员,和一块存储容器m,希望用该容器存储更多的会员信息;存储优化是个相当复杂的过程,为了简化问题,存储规则如下:每个会员的存储成本可以用长度ai的线段表示。存储容器一块,可以用一段线段m表示。存储容器有个特性,如果会员i储在容器中间位置,存储成本为ai本身,但是线段容器两端有存储压缩技术,存储在靠两端位置的会员存储成本可以压缩到一半,即 ai/2,而且每个会员只能压缩一次。现在n个会员,每个会员存储成本为ai,以及有一块存储资源,希望你做存储优化,使用尽可能小的存储容器存储下所有会员的信息。 输入描述 第一行输入一个正整数n,代表会员的数量。 第二行输入n个正整数ai,代表每个会员信息的大小 1 <= n <= 10^5 2 <= ai <= 10^9 保证ai是偶数。 输出描述 一个正整数,代表使用的存储容器大小的最小值。 样例输入 5 2 4 4 8 2 样例输出 14 提示 将第三个、第四个会员放在两端即可。使用一个大小为14的容器即可存储全部会员信息。 参考题解 贪心,将最大的放在两端,其余的放在中间。 C++:[此代码未进行大量数据的测试,仅供参考] #include <iostream>#include <algorithm>using namespace std;typedef long long LL;const int MAX_ELEMENTS = 100004;int numbers[MAX_ELEMENTS];int n;int main() { cin >> n; for (int i = 0; i < n; i++) { cin >> numbers[i]; } sort(numbers, numbers + n); LL ans = numbers[n - 2] / 2 + numbers[n - 1] / 2; for (int i = 0; i < n - 2; i++) { ans += numbers[i]; } cout << ans << endl; return 0;} Java:[此代码未进行大量数据的测试,仅供参考] import java.util.Arrays;public class Main { public static void main(String[] args) { java.util.Scanner sc = new java.util.Scanner(System.in); int n = sc.nextInt(); int[] numbers = new int[n]; for (int i = 0; i < n; i++) { numbers[i] = sc.nextInt(); } Arrays.sort(numbers); long ans = numbers[n - 2] / 2 + numbers[n - 1] / 2; for (int i = 0; i < n - 2; i++) { ans += numbers[i]; } System.out.println(ans); }} Python:[此代码未进行大量数据的测试,仅供参考] n = int(input())numbers = list(map(int, input().split()))numbers.sort()ans = numbers[-2] // 2 + numbers[-1] // 2for i in range(n - 2): ans += numbers[i]print(ans) 第二题 题目:小红合并数组 小红有一个长度为n的数组,每次操作她可以选择一个i,将ai加到ai-1或者ai+1(如果i-1 或者i+1在下标范围内),请问最少需要多少次操作,可以使数组的所有元素相等。 输入描述 一行一个整数n,表示数组的长度。 接下来一行n个整数a1,a2,...,an表示数组的初始值。 1 <= n <= 10^3 0 <= ai <= 10^4 输出描述 输出一个整数,表示最少的操作次数。 样例输入 5 1 4 2 3 5 样例输出 2 提示 第一次操作,将a2加到a1,数组变为[5,2,3,5]。 第二次操作,将a2加到a3,数组变为[5,5,5]。 参考题解 看成是对前缀和数组进行删除操作。因此枚举元素和的因子d,观察d,2d,3d……这个序列是不是原来的子序列即可,然后找到一个最长的子序列。 C++:[此代码未进行大量数据的测试,仅供参考] #include <iostream>#include <vector>using namespace std;typedef long long LL;const int N = 1004;int numbers[N], prefixSum[N], n;int main() { cin >> n; for (int i = 1; i <= n; i++) { cin >> numbers[i]; prefixSum[i] = prefixSum[i - 1] + numbers[i]; } int totalSum = prefixSum[n]; vector<int> divisors; for (int i = n; i >= 1; i--) { if (totalSum % i == 0) { divisors.push_back(i); } } int answer = 0; for (int d : divisors) { int w = totalSum / d; int c = 1; for (int i = 1; i <= n; i++) { if (prefixSum[i] == c * w) { c++; } } if (c > d) { answer = n - d; break; } } cout << answer << endl; return 0;} Java:[此代码未进行大量数据的测试,仅供参考] import java.util.ArrayList;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int[] numbers = new int[n]; for (int i = 0; i < n; i++) { numbers[i] = scanner.nextInt(); } long[] prefixSum = new long[n + 1]; for (int i = 1; i <= n; i++) { prefixSum[i] = prefixSum[i - 1] + numbers[i - 1]; } long totalSum = prefixSum[n]; ArrayList<Integer> divisors = new ArrayList<>(); for (int i = n; i > 0; i--) { if (t
点赞 3
评论 0
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
昨天 14:35
北京林业大学 硬件开发
简历挂挂挂挂到厌倦
点赞
评论
收藏
分享
07-29 16:42
澳门城市大学 算法工程师
26届现在投简历算晚吗
日常焦虑,实习没人要,简历不知往哪投,算法刷不明白
26届的你,投了哪些公司...
点赞
评论
收藏
分享
07-18 15:12
华南理工大学 Java
太崩溃了,985准大三Java还是找不到实习
一大堆打招呼已读不回,面试也几乎没有,到底是为什么。。简历学着润色了很多次,实习从四月份找到现在一边背八股一边刷力扣,挫败感真的太强了家里人也一直上压力,很多学校没我好的高中同学也找到了😭😭快不行了真的想跳了
白火同学:
先说结论,准大三不是特别好找实习,boss沟通300+没有实习是很正常的情况。一是暑期实习时间太短了,二是在这么多准大四都找不到实习,从实习时间和掌握技术层面,企业会优先看他们。 再说简历,其实985本+准大三到这水平的简历也很优秀了,要说的话,项目经历可以再优化一下,可以基本围绕采取STAR原则,分为项目概述、技术架构、技术亮点、实现结果,再发给AI润色一下。 最后说操作,准大三的话,如果想找实习那就多投,不过现在也7月中旬了,时间上已经略晚了。如果7月底实在找不到,也可以多刷点算法,多学点技术,这实习也不至于一定得有,当然有更好。
点赞
评论
收藏
分享
07-28 11:22
快手_快STAR广告引擎(准入职员工)
快手内推
🙋🏻♀️面试: 一共四面,其实只用三面,中间自己争取从偏前线的岗位往中台策略转,所以额外再增加了一面;可能本地生活这块业务确认,挺紧凑的,听HR说很长没看到面试结果全A的候选人了。 🙋🏻♀️入职: 接offer👉🏻背调👉🏻结果确认👉🏻到岗前填信息👉🏻入职当天参与培训领电脑👉🏻到用人部门**。嗯😐非常长,长到不想再来一遍那种🥹那种接了offer好像又没接的感觉,家人们谁懂! 🙋🏻♀️工作体验: 啊就是非常的卷…晚上十点可能才有机会下班,入职前第一周了解到,我们部门实习生两三个月来都是十一二点下班🥹怎么说呢工作日是不配拥有生活的,那种洗头都觉得懒,玩手机...
快手公司福利 971人发布
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
都是 dirty work,为什么别人的简历上就能言之有物🤔
2.1W
2
...
虾皮秋招一面
4007
3
...
虾皮后端一面(已挂)
3807
4
...
百度提前批,三面被推迟一周,喜提秋招第一凉
3702
5
...
他拿大厂SSP Offer打牌是什么概念啊?25届双非之光
3097
6
...
干活最少的实习生因为长得漂亮转正了
3077
7
...
7.30滴滴提前批一面凉经
3073
8
...
百度提前批 三面
3005
9
...
QQ提前批一面凉经
2603
10
...
7.30百度提前批一面
2396
创作者周榜
更多
正在热议
更多
#
你遇到最难的面试题目是_
#
15090次浏览
193人参与
#
反问环节如何提问
#
95506次浏览
1951人参与
#
中兴秋招
#
203682次浏览
2280人参与
#
简历上的经历如何包装
#
24332次浏览
728人参与
#
如何看待offer收割机的行为
#
815455次浏览
6088人参与
#
你最讨厌面试问你什么?
#
25059次浏览
282人参与
#
秋招最大的收获是什么?
#
38616次浏览
323人参与
#
我的实习收获
#
90880次浏览
1038人参与
#
26届的你,投了哪些公司?
#
37027次浏览
428人参与
#
滴滴求职进展汇总
#
233329次浏览
2116人参与
#
作业帮求职进展汇总
#
57005次浏览
376人参与
#
初创公司值得加入吗?
#
27314次浏览
194人参与
#
我对___祛魅了
#
43421次浏览
410人参与
#
数字马力求职进展汇总
#
184450次浏览
1500人参与
#
你跟室友的关系怎么样?
#
6037次浏览
94人参与
#
什么样的背景能拿SSP?
#
31441次浏览
201人参与
#
工作中哪个瞬间让你想离职
#
60637次浏览
545人参与
#
和同事相处最忌讳的是__
#
21147次浏览
217人参与
#
去年你投递实习了吗?
#
22884次浏览
331人参与
#
如何快速融入团队?
#
14864次浏览
182人参与
#
机械人的金三校招总结
#
36213次浏览
461人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务