2023-10-21 美团2024秋招后端开发岗笔试题
1 考察dfs和拓扑排序
1.1 题目描述(如果拓扑排序不清楚可以去做一下lc 207. 课程表)


1.2 答案
import java.util.*;public class Meituan {static int m,n;public static void main(String[] args) {Scanner in = new Scanner(System.in);m = in.nextInt();n = in.nextInt();char[][]cs=new char[m][n];for(int i=0;i<m;i++){String s=in.next();for(int j=0;j<n;j++){cs[i][j]=s.charAt(j);}}mp.put('A','B');mp.put('B','C');mp.put('C','D');mp.put('D','E');mp.put('E','A');mp.put('#','F');for(int i=0;i<m;i++){for(int j=0;j<n;j++){if(cs[i][j]=='A'){cnt=0;mark=new boolean[m][n];dfs(cs,i,j);}if(f){System.out.println(-1);return;}}}System.out.println(ans);}static int ans=0;static int[]dirs=new int[]{-1,0,1,0,-1};static int cnt=0;static Map<Character,Character>mp=new HashMap<>();static boolean[][]mark=new boolean[m][n];static boolean f=false;static void dfs(char[][]cs, int p, int q){if(f){return;}for(int i=0;i<4;i++){int nx=p+dirs[i];int ny=q+dirs[i+1];if(nx>=0&&nx<m&&ny>=0&&ny<n){if(cs[nx][ny]==mp.get(cs[p][q])){if(mark[nx][ny]){f=true;return;}mark[nx][ny]=true;cnt++;ans=Math.max(ans,cnt);dfs(cs, nx,ny);cnt--;}}}}
}
1.3 测试案例
case1:结果-1
2 5
ABCDE
EDCBAcase2:结果2
3 3
ABC
BEE
CEE
2 树的dfs
2.1 题目描述


case2:正确结果28
7
1 1 1 2 2 2 3
1 2
1 3
2 4
2 5
3 6
3 7
2
2 4
3 5
2.2 方法一:暴力O(N^2)复杂度
import java.util.*;// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {static List<List<Integer>>list=new ArrayList<>();static int[]weight;public static void main(String[] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();weight=new int[n];isColor=new int[n];for(int i=0;i<n;i++){int w = in.nextInt();weight[i]=w;}for(int i=0;i<n;i++){list.add(new ArrayList<>());}for(int i=0;i<n-1;i++){int a = in.nextInt()-1;int b = in.nextInt()-1;// System.out.println("a:"+a+",b:"+b);list.get(a).add(b);}int q=in.nextInt();for(int i=0;i<q;i++){int u=in.nextInt()-1;int x=in.nextInt();if(isColor[u]!=x)paint(u,x);}dfs(0);System.out.println(res);}static long res=0;static int[]isColor;static void dfs(int u){res+=weight[u];List<Integer>tmp=list.get(u);for(int i=0;i<tmp.size();i++){dfs(tmp.get(i));}}static void paint(int u,int x){weight[u]=x;isColor[u]=x;List<Integer>tmp=list.get(u);for(int i=0;i<tmp.size();i++){paint(tmp.get(i),x);}}}
2.3 方法三:O(N)复杂度
你的解决方法主要利用了深度优先搜索(DFS)和递归的思想。通过DFS遍历树的每个节点,并在遍历的过程中进行计算和状态更新。你还使用了一个时间戳的机制来记录每个节点最后一次被涂色的时间,以及使用了传递状态的方法来在递归调用中传递信息。
import java.util.*;public class Meituan {// 记录各个节点的子节点static List<List<Integer>>list=new ArrayList<>();// 记录权重以及特色时间戳static long[][]paintTime;// resultstatic long res=0;// 节点数static int n;public static void main(String[] args) {Scanner in = new Scanner(System.in);n = in.nextInt();paintTime=new long[n][2];for(int i=0;i<n;i++){int w = in.nextInt();paintTime[i][1]=w;}for(int i=0;i<n;i++){list.add(new ArrayList<>());}for(int i=0;i<n-1;i++){int a = in.nextInt()-1;int b = in.nextInt()-1;list.get(a).add(b);}int q=in.nextInt();for(int i=0;i<q;i++){int u=in.nextInt()-1; // 节点int x=in.nextInt(); // 涂色值long timeStamp= System.currentTimeMillis();paintTime[u][0]=timeStamp;paintTime[u][1]=x;}sumDfs(0,paintTime[0][0],paintTime[0][1]);System.out.println(res);}static void sumDfs(int u, long timeStamp, long x){// 获取最新的被涂色的值long finalX=timeStamp>paintTime[u][0]?x:paintTime[u][1];long finalTimeStamp=Math.max(timeStamp,paintTime[u][0]);res+=finalX;List<Integer>tmp=list.get(u);for (int i = 0; i < tmp.size(); i++) {sumDfs(tmp.get(i),finalTimeStamp,finalX);}}
}
2.4 改编题:如果将涂色改为新加值或者减少值呢?
3 回文串相关
3.1 题目描述
小美拿到了两个长度为n的字符串a和b,她希望生成一个新的长度为n的字符串c,希望满足ci是从ai和bi中二选一生成的。小美想知道,最终可以生成的所有字符串中有多少种不同的回文串。由于答案过大,请对10^9+7取模。
相关文章:
2023-10-21 美团2024秋招后端开发岗笔试题
1 考察dfs和拓扑排序 1.1 题目描述(如果拓扑排序不清楚可以去做一下lc 207. 课程表) 1.2 答案 import java.util.*;public class Meituan {static int m,n;public static void main(String[] args) {Scanner in new Scanner(System.in);m in.nextInt…...
汽车托运是怎样收费
汽车托运是如何收费的呢?一般来说,汽车托运的费用是会随着每公里来增加,目前的托运的每公里费用在1.2-1.8元之间,托运的距离越远那么它的托运单价费用就会越低,如果你运气好找到一家在搞活动的汽车托运公司,那么你就算…...
使用docker-compose私有化部署 GitLab
在软件开发和协作过程中,版本控制是至关重要的一环。GitLab 是一个功能强大的开源平台,提供了完整的代码管理功能,包括版本控制、问题跟踪以及持续集成等。这使得团队能够更高效地协作开发。前段时间翻阅笔记时,偶然发现了之前公司…...
Vue项目引入百度统计的正确操作步骤,亲测有效!
1、平台获取统计代码 2、在head和body中分别添加以下代码 head: <script>var _hmt _hmt || [];</script>body: <script>var _hmt _hmt || [];(function () {var hm document.createElement("script");hm.src "https://hm.baidu.com/hm.js…...
Keras中model.evaluate() 返回的是 loss value 和 metrics values
Keras官方文档: https://keras.io/models/model/#evaluate Keras中model.evaluate() 返回的是 损失值和训练时选定的指标值(例如,[AUC, , accuracy])。 训练时选定的指标值是指model.compile()里面metrics后面的值,ev…...
CSRF跨域请求伪造
1.SSRF服务端请求伪造(外网访问内网) SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF是要目标网站的内部系统。(因为他是从内部系统访问的…...
LeetCode 1465. 切割后面积最大的蛋糕:纵横分别处理
【LetMeFly】1465.切割后面积最大的蛋糕:纵横分别处理 力扣题目链接:https://leetcode.cn/problems/maximum-area-of-a-piece-of-cake-after-horizontal-and-vertical-cuts/ 矩形蛋糕的高度为 h 且宽度为 w,给你两个整数数组 horizontalCut…...
YTM32的增强型定时器eTMR外设模块详解
文章目录 eTMR外设简介eTMR工作机制系统框图引脚与信号计数器与时钟源输出比较模式PWM模式通道配对通道对的互补输出(Complementary Mode)双缓冲输出PWM(Double Switch)错误检测机制(Fault Detection) 输入…...
40.查找练习题(王道2023数据结构第7章)
试题1(王道7.2.4节综合练习5): 写出折半查找的递归算法。 #include<stdio.h> #include<stdlib.h> #include<string.h>#define MAXSIZE 10 #define ElemType int #define Status inttypedef struct{int data[MAXSIZE]; /…...
Segmentation fault 的bug解决
一,Segmentation fault 的bug解决 问题描述:自己在使用CPU上调试完代码之后,可以稳定运行,有输出结果。 但是把数据和模型加载上GPU之后,出现了报错。 Segmentation fault (core dumped) 搜了一下可能存在的原因&…...
【Python机器学习】零基础掌握BaggingRegressor集成学习
如何提升回归模型的稳定性和准确性? 在实际生活中,比如房价预测,经常会遇到一种情况:有大量的特征和样本数据,但模型的预测准确度仍然不尽人意。这时候,单一的模型(如支持向量机回归)可能表现得并不够好。 考虑到这个问题,解决方案可能是使用集成方法,特别是Baggin…...
麒麟KYLINOS通过命令行配置kysec的防火墙
原文链接:麒麟KYLINOS通过命令行配置kysec的防火墙 hello,大家好啊,今天给大家带来一篇使用命令行配置kysec的防火墙的文章,通过本篇文章的学习,大家可以了解到图形化界面中的防火墙信息是如何生成的,为后期…...
磁盘监控:告警时发送邮件
1.配置邮箱 1.编辑邮箱配置文件 vim /etc/mail.rc2.在末尾输入自己的邮箱配置,以163邮箱为例 #开启ssl set ssl-verifyignore #证书目录,下方为centos系统证书默认位置,也自行生成证书并指定 set nss-config-dir/etc/pki/nssdb # 配置的第…...
【HarmonyOS】元服务卡片router实现跳转到指定页面并传动态参数
【关键字】 元服务卡片、router跳转不同页面、传递动态参数 【写在前面】 本篇文章主要介绍开发元服务卡片时,如何实现从卡片中点击事件跳转到指定的应用内页面,并传递参数接受参数功能。此处以JS UI开发服务卡片为例,JS卡片支持组件设置ac…...
Centos安装RabbitMQ,JavaSpring发送RabbitMQ延迟延时消息,JavaSpring消费RabbitMQ消息
1,版本说明 erlang 和 rabbitmq 版本说明 https://www.rabbitmq.com/which-erlang.html 确认需要安装的mq版本以及对应的erlang版本。 2,下载安装文件 RabbitMQ下载地址: https://packagecloud.io/rabbitmq/rabbitmq-server Erlang下载地…...
leetcode:1323. 6 和 9 组成的最大数字(python3解法)
难度:简单 给你一个仅由数字 6 和 9 组成的正整数 num。 你最多只能翻转一位数字,将 6 变成 9,或者把 9 变成 6 。 请返回你可以得到的最大数字。 示例 1: 输入:num 9669 输出:9969 解释: 改变…...
SpringBoot集成Redis Cluster集群(附带Linux部署Redis Cluster高可用集群)
目录 一、前言二、集成配置2.1、POM2.2、添加配置文件application.yml2.3、编写配置文件2.4、编写启动类2.5、编写测试类测试是否连接成功 一、前言 这里会使用到spring-boot-starter-data-redis包,spring boot 2的spring-boot-starter-data-redis中,默…...
LLaVA:visual instruction tuning
对近期一些MLLM(Multimodal Large Language Model)的总结 - 知乎本文将从模型结构,训练方法,训练数据,模型表现四个方面对近期的一些MLLM(Multi-modal Large Language Models)进行总结并探讨这四个方面对模型表现的影响…...
Python实现双目标定、畸变矫正、立体矫正
一,双目标定、畸变矫正、立体矫正的作用 双目目标定: 3D重建和测距:通过双目目标定,您可以确定两个摄像头之间的相对位置和朝向,从而能够根据视差信息计算物体的深度,进行三维重建和测距。姿态估计…...
showdoc 文件上传 (cnvd-2020-26585)
showdoc 文件上传 (cnvd-2020-26585) 描述 ShowDoc是一个非常适合IT团队的在线API文档、技术文档工具。通过showdoc,你可以方便地使用markdown语法来书写出美观的API文档、数据字典文档、技术文档、在线excel文档等等。 api_page存在任意文…...
P1163 银行贷款 总结与反思
提炼以下几点:1,问:C中 整型怎么转浮点数(int/ long long to double):答:直接赋值即可, eg ll N; double a N;2, 问:C中整型和浮点数怎么做加减法答:直接加减即可,自…...
小智AI固件开发者的福音:VSCode插件一键搞定ESP-IDF v5.4环境(Windows/Linux通用)
小智AI固件开发者的福音:VSCode插件一键搞定ESP-IDF v5.4环境(Windows/Linux通用) 在物联网开发领域,ESP32系列芯片凭借其优异的性能和丰富的功能,已经成为智能硬件开发的首选平台之一。而作为ESP32官方推荐的开发框架…...
【HALCON】test_subset_region算子实战:从原理到工业质检的精准区域嵌套检测
1. test_subset_region算子的核心原理与工业价值 在工业质检场景中,判断一个区域是否完全包含在另一个区域内,就像检查螺丝是否准确拧进了螺孔。HALCON的test_subset_region算子就是专门解决这类问题的"智能卡尺"。它的底层逻辑其实非常直观—…...
XXL-SSO开源项目未来展望:技术趋势与roadmap解读
XXL-SSO开源项目未来展望:技术趋势与roadmap解读 XXL-SSO作为一款分布式单点登录框架,已在众多企业中得到广泛应用,为多系统统一认证提供了轻量级且高扩展性的解决方案。随着分布式系统架构的不断演进,XXL-SSO正面临新的技术挑战…...
ai辅助开发:向快马描述你的微服务项目,智能生成全套java环境配置与编排文件
最近在搭建一个分布式微服务项目时,遇到了环境配置这个老大难问题。不同模块需要不同中间件,团队成员电脑环境各异,每次新人加入都要折腾半天环境。好在发现了InsCode(快马)平台的AI辅助开发功能,用自然语言描述需求就能自动生成全…...
AutoGLM沉思版 vs OpenAI DeepResearch:免费国产AI Agent能否替代200美元/月的服务?
AutoGLM沉思版与OpenAI DeepResearch深度对比:企业级AI研究工具如何选择? 当企业研发团队需要处理海量文献综述时,当投资机构需要快速生成行业分析报告时,技术决策者往往面临一个关键选择:是选择国际知名但价格高昂的O…...
COMSOL二维单管渗透注浆模拟:简单又强大
comsol二维单管渗透注浆模拟 可以模拟用于多种土层注浆扩散效果 模型简单易懂,注浆管周边网格进行细化 有模拟案例,有视频详细操作最近,我一直在研究注浆技术在土层加固中的应用,特别是在如何模拟注浆过程中的扩散效果。经过一段时…...
2026届最火的十大AI科研平台实测分析
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 学术写作需求有所增长之际,AI论文网站变成了研究者的关键辅助工具。当下主流众多…...
计算机毕业设计springboot在线学习平台个性化推荐系统 基于SpringBoot框架的智能教育内容精准推送平台 基于Java Web的在线教育资源智能匹配与学习跟踪系统
计算机毕业设计springboot在线学习平台个性化推荐系统(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。在信息技术高速发展与终身学习理念深度普及的时代背景下,互联网…...
一次慢改表引发的线上死锁事故复盘
一次慢改表引发的线上死锁事故复盘 一、事故背景 在一次常规的数据库表结构变更过程中,对某核心业务表执行了慢改表操作(使用 pt-online-schema-change)。操作开始后,短时间内触发报警: 部分接口响应时间显著上升出现请…...
