首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
高木卡卡今晚吃虫豸
门头沟学院 Java
发布于北京
关注
已关注
取消关注
@WLvae:
8.26-美团-笔试
只做出了三道半。。。感觉美团换成牛客平台后,特别针对Java选手,同样的思路cpp、py都能过。。。第一题:小美种果树当时直接模拟就好了,我在这边找规律,做了快半个小时public static void main(String[] args) { Scanner sc = new Scanner(System.in); int x = sc.nextInt(); int y = sc.nextInt(); int z = sc.nextInt(); int yu = z%(3*x+y); //一个周期三天 成长值3*x+y , int ans =0; if(yu==0) { ans = 3* (z/(3*x+y)); }else { if(yu<x+y){ ans = 3* (z/(3*x+y))+1; } else if(yu<2*x+y){ ans = 3* (z/(3*x+y))+2; }else { ans = 3* (z/(3*x+y))+3; } } System.out.println(ans); }第二题:小美结账直接模拟 public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); long a[] = new long[m + 2]; for (int i = 1; i <= n; i++){ int k = sc.nextInt(); int c = sc.nextInt(); int avg = (c+k-1)/k;//向上取整 for (int j = 1; j <= k-1; j++){ int id = sc.nextInt(); a[id] += avg; } } for (int i = 1; i <= m; i++){ if(i==1){ System.out.print(a[i]); }else { System.out.print(" "); System.out.print(a[i]); } } System.out.println(""); }第三题:小美的游戏小美有一个长度为n的数组,她最多可以进行k次操作,每次操作如下:选择两个整数i,j(1<=i<j<=n)选择两个整数x,y,使得x*y=ai*aj将ai替换为x,将aj替换为y她希望最多进行k次操作之后,最后数组中的元素的总和尽可能大。思路:堆模拟。找到堆中最大的两个元素相乘,再往堆里加入相乘的值和1,循环k次即可。static final int MOD = (int) 1e9 + 7; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); PriorityQueue<BigDecimal> pq = new PriorityQueue<>((a, b) -> b.compareTo(a)); for (int i = 0; i < n; i++) { long x = sc.nextInt(); pq.offer(BigDecimal.valueOf(x)); } BigDecimal ans = BigDecimal.valueOf(0); while (k-- > 0) { BigDecimal x = pq.poll(), y = pq.poll(); pq.offer(x.multiply(y)); pq.offer(BigDecimal.valueOf(1)); } while (!pq.isEmpty()) { ans = ans.add(pq.poll()); } System.out.println(ans.divideAndRemainder(BigDecimal.valueOf(MOD))[1]); }第四题:小美的数组重排小美有两个长度为n的数组a和b。小美想知道,能不能通过重排a数组使得对于任意1<=i<=n,1<=ai+bi<=m?将会有q次询问。思路:要想满足题目的要求,对于数组a的最小值,如果跟数组b的最大值进行合并,假设结果不满足,那就肯定是不可能的了,否则可以考虑次小值和次大值进行分配,以此类推,只需要将a数组正向排序,b数组逆向排序即可。static final int N = 510; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int q = sc.nextInt(); while (q-- > 0) { int n = sc.nextInt(); int m = sc.nextInt(); int[] a = new int[n]; int[] b = new int[n]; for (int i = 0; i < n; i++) { a[i] = sc.nextInt(); } for (int i = 0; i < n; i++) { b[i] = sc.nextInt(); } Arrays.sort(a); Arrays.sort(b); boolean flag = true; for (int i = 0, j = n - 1; i < n; i++, j--) { if (!(a[i] + b[j] >= 1 && a[i] + b[j] <= m)) { flag = false; break; } } System.out.println(flag ? "YES" : "NO"); } }第五题:平均数为k的最长连续子数组给定n个正整数组成的数组,求平均数正好等于k 的最长连续子数组的长度。如果不存在任何一个连续子数组的平均数等于k,则输出-1。否则输出平均数正好等于k的最长连续子数组的长度。思路:思维题+哈希表模拟。平均数比较难处理,我们不妨将原数组中每个元素都-k,这样问题转换成找到和为0的最长子数组。public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int k = scanner.nextInt(); int[] a = new int[n]; for (int i = 0; i < n; i++) { a[i] = scanner.nextInt() - k; } int res = 0; HashMap<Integer, Integer> occ = new HashMap<>(); occ.put(0, -1); int tmp = 0; for (int i = 0; i < n; i++) { tmp += a[i]; if (occ.containsKey(tmp)) { res = Math.max(res, i - occ.get(tmp)); } if (!occ.containsKey(tmp)) { occ.put(tmp, i); } } System.out.println(res); }
点赞 14
评论 5
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
03-26 19:11
浙江大学 算法工程师
联想 C++ 二面,聊了一个半小时差点没撑住
二面,还是视频面试,这次面试官换了一个人,自我介绍说是做系统软件方向的高级工程师。和一面相比节奏明显不一样,问题少但每道都很深,基本上每个话题都会顺着你的回答继续挖,感觉整场面试就是在不断被追问。项目聊了将近三十分钟,他对架构设计和遇到的问题非常感兴趣,问了很多"为什么这么做"和"有没有更好的方案"。后半段有一道系统设计题,没有手撕算法,但设计题聊了很久。整体强度比一面高不少,面完感觉脑子空了。1. 讲一下你对 C++ 对象内存布局的理解,虚继承是怎么解决菱形继承问题的?答:一个普通 C++ 对象的内存布局,从低地址到高地址依次是:如果有虚函数,最开头是...
C++八股文全集
点赞
评论
收藏
分享
昨天 17:07
武汉大学 Java
快手 用户增长 暑期二面
额全程无八股无项目,纯做题,给我整无语了手撕是快排链表
查看2道真题和解析
点赞
评论
收藏
分享
03-29 14:17
杭州电子科技大学 嵌入式硬件工程师
开发还有 promising 吗
AI 能力恐怖如斯……
Prompt分享
点赞
评论
收藏
分享
03-27 20:56
东北大学 嵌入式工程师
2.6 操作系统 并发与互斥
一、同步与异步同步:用来保证调用方和被调用方顺序执行。调用方需要等待被调用方执行完成之后,自身才能继续执行,调用方的逻辑控制流被阻塞。同步不一定要阻塞,只是逻辑控制流被阻塞。阻塞只是同步最常用的手段。异步:调用方和被调用方各自执行。调用方发出请求之后,无需等待被调用方执行完毕就可以继续执行,被调用方的执行结果通过回调、信号等方式返回给调用方。核心区别:调用方的逻辑控制流是否阻塞等待被调用方执行结束。二、同步:有锁、无锁、无等待锁的概念:核心目的是解决并发(多个操作同时进行)时,争抢共享资源(如数据、文件等)导致的混乱问题。上锁(加锁):申请独占使用权。如果资源空闲,就可获得锁并开始操作。解锁(...
C++/嵌入式开发 秋招...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
Vibe Coding开发前的 7 个关键步骤
8835
2
...
我放弃互联网大厂了。。
4397
3
...
AIcoding上线了!你确定不来刷刷?
4060
4
...
我招了!当年就是被招行这么招进去的
3723
5
...
笔试做完两周没动静,我查了进度才知道不是挂了
3505
6
...
字节实习一、二、三、HR面面经
3341
7
...
如何把面试主动权握在手里?Ai岗面试焚诀!
2912
8
...
4.1 美团后端暑期实习面经
2904
9
...
美团后端暑期实习一面
2799
10
...
京东零售平台产品与研发中心一面
2711
创作者周榜
更多
正在热议
更多
#
你觉得大几开始实习最合适?
#
14013次浏览
142人参与
#
uu们,春招你还来吗?
#
51991次浏览
275人参与
#
开放七大实习专项,百度暑期实习值得冲吗
#
33545次浏览
603人参与
#
面试被问到不会的问题,你怎么应对?
#
11919次浏览
117人参与
#
面试中,你被问过哪些奇葩问题?
#
92038次浏览
873人参与
#
做完笔试后你收到面试了吗?
#
13169次浏览
141人参与
#
厦门银行科技岗值不值得投
#
13559次浏览
311人参与
#
你都用vibe coding做过什么?
#
8397次浏览
315人参与
#
AI Coding实战技巧
#
7159次浏览
145人参与
#
2023年不发年终奖的公司盘点
#
30191次浏览
171人参与
#
你现在一天AI几次?
#
6277次浏览
76人参与
#
七猫笔试
#
6295次浏览
46人参与
#
Vibe Coding 会干掉初级岗位吗?
#
11810次浏览
154人参与
#
你见过哪些招聘隐形歧视?
#
9841次浏览
86人参与
#
26届春招投递记录
#
1399次浏览
21人参与
#
大厂实习和小厂实习最大的区别是什么?
#
23134次浏览
165人参与
#
如果人生可以debug你会改哪一行?
#
5231次浏览
93人参与
#
Claude Code泄露源码
#
5468次浏览
81人参与
#
机械人你知道哪些单休企业
#
101715次浏览
474人参与
#
牛友の3月总结
#
16587次浏览
144人参与
#
四大天坑是哪四家?
#
111084次浏览
239人参与
#
秋招OC许愿
#
425133次浏览
2705人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务