首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
冲冲冲冲冲冲呀
门头沟学院 Java
发布于北京
关注
已关注
取消关注
蚂蚁笔试感觉还好呜呜呜
@一片特立独行的面包:
2025.3.9 蚂蚁笔试(个人整理,仅供参考)
第一题答案import java.util.Scanner;public class mayiT1 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); scanner.nextLine(); String s = scanner.nextLine(); String t = scanner.nextLine(); scanner.close(); for (int i = 0; i < s.length(); i++) { if (s.charAt(i) >= 'A' && s.charAt(i) <= 'Z') { System.out.print(Character.toUpperCase(s.charAt(i))); } else if (s.charAt(i) >= 'a' && s.charAt(i) <= 'z') { System.out.print(Character.toLowerCase(s.charAt(i))); } else if (s.charAt(i) >= '0' && s.charAt(i) <= '9') { System.out.print((int) t.charAt(i)); } else { System.out.print('_'); } } }}第二题思路二叉树即为特殊的图,用邻接表存储,把编号为1的结点当作根(0,0),dfs求每个点的坐标,即可得出答案。答案import java.util.*;public class mayiT2 { static List<Integer>[] tree; static Map<Integer, Coordinate> map; static boolean[] visited; public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int q = scanner.nextInt(); tree = new ArrayList[n + 1]; for (int i = 1; i <= n; i++) { tree[i] = new ArrayList<>(); } for (int i = 1; i <= n - 1; i++) { int u = scanner.nextInt(); int v = scanner.nextInt(); tree[u].add(v); tree[v].add(u); } int root = 1; map = new HashMap<>(); visited = new boolean[n + 1]; visited[1] = true; map.put(root, new Coordinate(0, 0)); dfs(root); for (int i = 0; i < q; i++) { int c1 = scanner.nextInt(); int c2 = scanner.nextInt(); System.out.println(Math.abs(map.get(c1).getX() - map.get(c2).getX()) + Math.abs(map.get(c1).getY() - map.get(c2).getY())); } scanner.close(); } private static void dfs(int root) { boolean left = true; // 是否是左孩子 tree[root].sort(Integer::compareTo); for (int child : tree[root]) { if (!visited[child]) { visited[child] = true; if (left) { left = false; map.put(child, new Coordinate(map.get(root).getX() - 1, map.get(root).getY() - 1)); dfs(child); } else { map.put(child, new Coordinate(map.get(root).getX() + 1, map.get(root).getY() - 1)); dfs(child); } } } } static class Coordinate { int x; int y; public Coordinate(int x, int y) { this.x = x; this.y = y; } public int getX() { return x; } public int getY() { return y; } }}第三题题目描述给定n个元素ai,要求计算以下表达式的值:输入描述第一行包含一个整数n,表示元素的个数,满足1 ≤ n ≤ 10^5^第二行包含n个整数a1,a2,...,an,其中1 ≤ ai ≤ 10^5^输出描述输出一个整数,表示计算得到的值s示例1输入31 2 3输出9说明对于输入的样例,计算过程如下具体计算:当i=1时:1+0+0=1当i=2时:2+1+0=3当i=3时:3+1+1=5将所有结果相加,得到S=1+3+5=9思路采用 计数优化 方式计数数组 count:统计输入数组中每个数的出现次数,加快后续计算。前缀和数组 prefixSum:计算前缀和,用于快速统计某个区间的数的个数。优化计算 floor(ai/aj):直接遍历 ai 并累加 floor(ai / aj) 的贡献,避免双重循环暴力计算,提高效率。时间复杂度预处理 count 和 prefixSum:O(n)计算 S:O(n log n) 级别,优于 O(n²)答案import java.util.Scanner;public class mayiT3 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int[] nums = new int[n]; int maxVal = 0; for (int i = 0; i < n; i++) { nums[i] = scanner.nextInt(); maxVal = Math.max(maxVal, nums[i]); } scanner.close(); // 统计每个数出现的次数 int[] count = new int[maxVal + 1]; for (int num : nums) { count[num]++; } // 计算前缀和,用于快速查询小于等于某个数的总个数 int[] prefixSum = new int[maxVal + 1]; for (int i = 1; i <= maxVal; i++) { prefixSum[i] = prefixSum[i - 1] + count[i]; } long ans = 0; // 遍历每个可能的 a[i] for (int num = 1; num <= maxVal; num++) { if (count[num] == 0) { // 跳过未出现的数 continue; } // 计算当前 a[i] 对所有 a[j] 的贡献 for (int k = 1; k * num <= maxVal; k++) { int lower = k * num; int upper = Math.min(maxVal, (k + 1) * num - 1); int numCount = prefixSum[upper] - prefixSum[lower - 1]; ans += (long) count[num] * k * numCount; } } System.out.println(ans); }}
点赞 10
评论 2
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
01-18 10:12
蚌埠坦克学院 嵌入式软件开发
嵌入式新机会:机器人行业
近年来,机器人产业迎来爆发式增长,智能制造、物流搬运、服务机器人、无人配送、医疗康复等领域对机器人技术的需求不断扩大。作为嵌入式方向的从业者或即将进入行业的学生,机器人无疑是一个极具前景的“新机会”。机器人不仅需要硬件控制、实时系统、通信协议等嵌入式基础,还涉及传感器融合、运动控制、视觉识别、算法优化等多学科交叉内容,因此对嵌入式工程师的能力要求更高,但也意味着更广阔的发展空间。机器人行业的核心竞争力在于系统整合能力。一个机器人项目通常包含底层驱动、实时控制、上位机通信、传感器数据处理、路径规划与运动控制等模块。嵌入式工程师在机器人方向的优势在于对底层系统的理解更深、更能把控性能与稳定性。因此...
点赞
评论
收藏
分享
01-22 13:57
vivo_数据算法工程师(准入职员工)
正浩创新内推,正浩创新内推码
26届女硬件工程师丨正浩创新面经及流程9.1一面1.自我介绍2.有无相关电源设计项目或经历,并浅谈3.DCDC拓扑手撕(但是我当时没带纸笔所以口头描述),BUCK和BOOST,同步异步的区别和优缺点,同步电路的控制方式(施加什么PWM波形,如何控制MOS通断)4.项目中最有挑战性的部分,怎么解决的,然后会深挖这一部分再提问(这个问题出现的根本原因,下次如何避免)5.面试官说我专业其实不是很对口,不是电气工程专业,所以问的比较浅,大家仅供参考9.2收到笔试链接,非笔试,为性格测试9.5收到二面短信9.8 二面,没有技术问题,主要问了在校做过什么项目,调试遇到什么问题,除此之外有没有做过电源相关项...
点赞
评论
收藏
分享
01-19 11:04
嘉士伯_供应链管培生(准入职员工)
小天才内推,小天才内推码
小天才26秋招分享(三面凉经)tl:9.13投递-10.10自主约面-10.10一面-10.11上传作品集-10.14二面-10.16三面(交叉面) 一面:线上邮件通知选择具体面试时间段(大约20mins)面试官问题1. 请先做一个自我介绍(1分钟左右)。2. 简历项目追问3. 在校期间有获得哪些奖学金吗?4. 有挂过科吗?5. 学得最好的课程是哪些?6. 分享一个人力资源领域中你觉得很重要的知识点。7. 根据以上追问若干问题8. 结合实习经历,招聘的具体成果是你直接负责的社招岗位吗?9. 你的导师对你的工作评价是什么样的?10.追问11.综合实习经历,你目前更适合做人力哪个方向的工作?12....
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
备战春招,网申一键填写工具,发布了!!!
3.1W
2
...
实习产出如何包装?
8696
3
...
【官方活动】牛客新春计划:给陌生人的一封信
7358
4
...
32岁程序员猝死,底薪3千要24h待岗
6020
5
...
27双非非科班4段实习从字节tt到腾讯wxg
5898
6
...
我爸对计算机行业的看法,是否准确?
5009
7
...
27届实习时间线
4510
8
...
专科工作一年后的心里话
3566
9
...
第一次被同事气笑了
3333
10
...
坚持的爱好是规律饮食
3146
创作者周榜
更多
正在热议
更多
#
哪些公司开春招了?
#
9320次浏览
115人参与
#
工作压力大怎么缓解
#
137284次浏览
1228人参与
#
上班以后,你还有哪些坚持的爱好?
#
6703次浏览
167人参与
#
找工作以来,你最看不惯__
#
12930次浏览
286人参与
#
你都在哪些场所面过试?
#
18586次浏览
218人参与
#
AI coding的好用工具分享
#
16903次浏览
357人参与
#
实习怎么做才有更好的产出
#
11209次浏览
204人参与
#
实习教会我的事
#
51442次浏览
399人参与
#
你最近因为什么迷茫?
#
32602次浏览
462人参与
#
实习离职怎么跟领导说
#
75742次浏览
420人参与
#
实习生工资多少才算正常?
#
11931次浏览
189人参与
#
拼多多工作体验
#
44220次浏览
283人参与
#
四大天坑是哪四家?
#
99719次浏览
234人参与
#
机械制造面试记录
#
307767次浏览
3152人参与
#
你给AI提过哪些离谱的需求?
#
5553次浏览
159人参与
#
领导做过最不靠谱的事
#
12006次浏览
203人参与
#
为了实习逃课值吗?
#
61924次浏览
517人参与
#
工作一周年分享
#
49875次浏览
256人参与
#
选offer应该考虑哪些因素
#
139079次浏览
980人参与
#
你想跟着什么样领导?
#
47516次浏览
235人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务