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取模。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/123589.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何将SAP数据集成到任意云平台

十年前就在使用SAP的客户询问我当时突然出现的新事物&#xff1a;大数据。五年前&#xff0c;变成了数据湖和机器学习。现在一切都是关于数据集成&#xff0c;当然还有人工智能。有时处理数据的基本方法已经改变或者发展。有时只是名字的改变。例如&#xff0c;在过去十年中&am…

2023 年值得关注的国外网络安全初创公司

网络安全初创公司试图解决的问题往往有点超前于主流。他们可以比大多数老牌公司更快地填补空白或新兴需求。初创公司通常可以更快地创新&#xff0c;因为它们不受安装基础的限制。 当然&#xff0c;缺点是初创公司往往缺乏资源和成熟度。公司致力于初创公司的产品或平台是有风…

Rust 语言介绍及安装

目录 1、简介 1.1 为什么选择Rust 高性能 可靠性 生产力 1.2 用 Rust 构建应用 命令行 WebAssembly 网络 嵌入式 2、安装 Rust Windows 的 Linux 子系统&#xff08;WSL&#xff09; 检查Rust 是最新的 卸载Rust版本&#xff1a; Cargo&#xff1a;Rust 的构建工…

读图数据库实战笔记03_遍历

1. Gremlin Server只将数据存储在内存中 1.1. 如果停止Gremlin Server&#xff0c;将丢失数据库里的所有数据 2. 概念 2.1. 遍历&#xff08;动词&#xff09; 2.1.1. 当在图数据库中导航时&#xff0c;从顶点到边或从边到顶点的移动过程 2.1.2. 类似于在关系数据库中的查…

Miniconda、Vscode下载和conda源、pip源设置

1、常用软件下载 1、Miniconda软件下载&#xff1a; windows网址&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/?CS&OA 2、最新版Miniconda下载网址&#xff1a;https://docs.conda.io/projects/miniconda/en/latest/ 3、常用代码编辑器VsCode下…

IDE的组成

集成开发环境&#xff08;IDE&#xff0c;Integrated Development Environment &#xff09;是用于提供程序开发环境的应用程序&#xff0c;一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务…

山西电力市场日前价格预测【2023-10-30】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-10-30&#xff09;山西电力市场全天平均日前电价为309.35元/MWh。其中&#xff0c;最高日前电价为400.33元/MWh&#xff0c;预计出现在18:15。最低日前电价为0.00元/MWh&#xff0c;预计出…

Openssl数据安全传输平台014:OCCI的安装配置和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目)

文章目录 0 代码仓库1 启动Centos oracle数据库2 Winsows安装配置OCCI库2.1 下载文件2.2 VS 配置2.2.1 VC包含目录2.2.2 VC库目录2.2.3 连接器-附加依赖项2.2.4 代码测试-Oracle11g2.2.4.1 准备2.2.4.2 代码测试 3 Centos安装配置occi库3.1 下载instantclient库文件压缩包3.2 w…

Spring Cloud Gateway + Knife4j 4.3 实现微服务网关聚合接口文档

目录 前言Spring Cloud 整合 Knife4jpom.xmlapplication.ymlSwaggerConfig.java访问单服务接口文档 Spring Cloud Gateway 网关聚合pom.xmlapplication.yml访问网关聚合接口文档 接口测试登录认证获取登录用户信息 结语源码 前言 youlai-mall 开源微服务商城新版本基于 Spring…

考点之数据结构

概论 时间复杂度和空间复杂度是计算机科学中用来评估算法性能的重要指标。 时间复杂度&#xff1a; 时间复杂度衡量的是算法运行所需的时间。它表示算法执行所需的基本操作数量随着输入大小的增长而变化的趋势。 求法&#xff1a; 通常通过分析算法中基本操作执行的次数来…

国际阿里云CDN加速OSS资源教程!

当您需要加速OSS上的静态资源时&#xff0c;可以通过阿里云CDN加速OSS域名&#xff0c;实现静态资源的访问加速。本文详细介绍了通过CDN控制台实现OSS加速的操作流程和应用场景。 客户价值 阿里云OSS可提供低成本的存储&#xff0c;CDN可以实现静态资源加速分发。使用OSS作为C…

ESM蛋白质语言模型系列

模型总览 第一篇《Biological structure and function emerge from scaling unsupervised learning to 250 million protein sequences 》ESM-1b 第二篇《MSA Transformer》在ESM-1b的基础上作出改进&#xff0c;将模型的输入从单一蛋白质序列改为MSA矩阵&#xff0c;并在Tran…

使用设计模式基于easypoi优雅的设计通用excel导入功能

文章目录 概要整体架构流程代码设计配置类通用API分发器处理器业务逻辑处理service接口策略模型 小结 概要 基于java原生 easypoi结合适配器模式、策略模式、工厂模式设计一个通用的excel导入框架 整体架构流程 代码设计 由上到下&#xff0c;分别讲解代码 配置类 ExcelCon…

Go学习第十六章——Gin文件上传与下载

Go web框架——Gin文件上传与下载 1. 文件上传1.1 入门案例&#xff08;单文件&#xff09;1.2 服务端保存文件的几种方式SaveUploadedFileCreateCopy 1.3 读取上传的文件1.4 多文件上传 2. 文件下载2.1 快速入门2.2 前后端模式下的文件下载2.3 中文乱码问题 1. 文件上传 1.1 …

计算机毕业设计选题推荐-周边美食推荐微信小程序/安卓APP-项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

kafka3.X基本概念和使用

kafka基本概念和使用 文章目录 kafka基本概念和使用 kafka的概念基本概念Kafka的使用 首先kafka的安装kafka的简单实用和理解搭建集群&#xff08;3个节点&#xff09;windows版本环境搭建 本文"kafka的概念"部分是在[初谈Kafka][ https://juejin.im/post/5a8e7f…

VulnHub DC-1

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏…

微信小程序 - 页面继承(非完美解决方案)

微信小程序 - 面页继承&#xff08;非完美解决方案&#xff09; 废话思路首页 indexindex.jsindex.jsonindex.wxml 父页面 page-basepage-base.jspage-base.wxml 子页面 page-apage-a.jspage-a.wxml 子页面 page-bpage-b.jspage-b.wxml 其它app.jsapp.jsonapp.wxss 参考资料 废…

BI是什么?想要了解BI需要从哪些方面入手?

企业为了执行数字化战略&#xff0c;实行数字化转型&#xff0c;实现数据价值&#xff0c;除了需要相关数字化技术及理念、人才等&#xff0c;还需要借助数字化相关应用&#xff0c;例如商业世界中广受企业欢迎的ERP、OA、CRM等业务信息系统&#xff0c;以及上升势头非常迅猛的…

【STM32】STM32中断体系

一、STM32的NVIC和起始代码中的ISP 1.NVIC(嵌套向量中断控制器) (1)数据手册中相关部分浏览 (2)地址映射时0地址映射到Flash或SRAM (3)中断向量表可以被人为重新映射&#xff0c;一般用来IAP中 (4)STM32采用一维的中断向量表 (5)中断优先级设置有点复杂&#xff0c;后面细说 1…