当前位置: 首页 > news >正文

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 题目描述&#xff08;如果拓扑排序不清楚可以去做一下lc 207. 课程表&#xff09; 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…...

汽车托运是怎样收费

汽车托运是如何收费的呢?一般来说&#xff0c;汽车托运的费用是会随着每公里来增加&#xff0c;目前的托运的每公里费用在1.2-1.8元之间&#xff0c;托运的距离越远那么它的托运单价费用就会越低&#xff0c;如果你运气好找到一家在搞活动的汽车托运公司&#xff0c;那么你就算…...

使用docker-compose私有化部署 GitLab

在软件开发和协作过程中&#xff0c;版本控制是至关重要的一环。GitLab 是一个功能强大的开源平台&#xff0c;提供了完整的代码管理功能&#xff0c;包括版本控制、问题跟踪以及持续集成等。这使得团队能够更高效地协作开发。前段时间翻阅笔记时&#xff0c;偶然发现了之前公司…...

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官方文档&#xff1a; https://keras.io/models/model/#evaluate Keras中model.evaluate() 返回的是 损失值和训练时选定的指标值&#xff08;例如&#xff0c;[AUC, , accuracy]&#xff09;。 训练时选定的指标值是指model.compile()里面metrics后面的值&#xff0c;ev…...

CSRF跨域请求伪造

1.SSRF服务端请求伪造&#xff08;外网访问内网&#xff09; SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下&#xff0c;SSRF是要目标网站的内部系统。&#xff08;因为他是从内部系统访问的&#xf…...

LeetCode 1465. 切割后面积最大的蛋糕:纵横分别处理

【LetMeFly】1465.切割后面积最大的蛋糕&#xff1a;纵横分别处理 力扣题目链接&#xff1a;https://leetcode.cn/problems/maximum-area-of-a-piece-of-cake-after-horizontal-and-vertical-cuts/ 矩形蛋糕的高度为 h 且宽度为 w&#xff0c;给你两个整数数组 horizontalCut…...

YTM32的增强型定时器eTMR外设模块详解

文章目录 eTMR外设简介eTMR工作机制系统框图引脚与信号计数器与时钟源输出比较模式PWM模式通道配对通道对的互补输出&#xff08;Complementary Mode&#xff09;双缓冲输出PWM&#xff08;Double Switch&#xff09;错误检测机制&#xff08;Fault Detection&#xff09; 输入…...

40.查找练习题(王道2023数据结构第7章)

试题1&#xff08;王道7.2.4节综合练习5&#xff09;&#xff1a; 写出折半查找的递归算法。 #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解决

一&#xff0c;Segmentation fault 的bug解决 问题描述&#xff1a;自己在使用CPU上调试完代码之后&#xff0c;可以稳定运行&#xff0c;有输出结果。 但是把数据和模型加载上GPU之后&#xff0c;出现了报错。 Segmentation fault (core dumped) 搜了一下可能存在的原因&…...

【Python机器学习】零基础掌握BaggingRegressor集成学习

如何提升回归模型的稳定性和准确性? 在实际生活中,比如房价预测,经常会遇到一种情况:有大量的特征和样本数据,但模型的预测准确度仍然不尽人意。这时候,单一的模型(如支持向量机回归)可能表现得并不够好。 考虑到这个问题,解决方案可能是使用集成方法,特别是Baggin…...

麒麟KYLINOS通过命令行配置kysec的防火墙

原文链接&#xff1a;麒麟KYLINOS通过命令行配置kysec的防火墙 hello&#xff0c;大家好啊&#xff0c;今天给大家带来一篇使用命令行配置kysec的防火墙的文章&#xff0c;通过本篇文章的学习&#xff0c;大家可以了解到图形化界面中的防火墙信息是如何生成的&#xff0c;为后期…...

磁盘监控:告警时发送邮件

1.配置邮箱 1.编辑邮箱配置文件 vim /etc/mail.rc2.在末尾输入自己的邮箱配置&#xff0c;以163邮箱为例 #开启ssl set ssl-verifyignore #证书目录&#xff0c;下方为centos系统证书默认位置&#xff0c;也自行生成证书并指定 set nss-config-dir/etc/pki/nssdb # 配置的第…...

【HarmonyOS】元服务卡片router实现跳转到指定页面并传动态参数

【关键字】 元服务卡片、router跳转不同页面、传递动态参数 【写在前面】 本篇文章主要介绍开发元服务卡片时&#xff0c;如何实现从卡片中点击事件跳转到指定的应用内页面&#xff0c;并传递参数接受参数功能。此处以JS UI开发服务卡片为例&#xff0c;JS卡片支持组件设置ac…...

Centos安装RabbitMQ,JavaSpring发送RabbitMQ延迟延时消息,JavaSpring消费RabbitMQ消息

1&#xff0c;版本说明 erlang 和 rabbitmq 版本说明 https://www.rabbitmq.com/which-erlang.html 确认需要安装的mq版本以及对应的erlang版本。 2&#xff0c;下载安装文件 RabbitMQ下载地址&#xff1a; https://packagecloud.io/rabbitmq/rabbitmq-server Erlang下载地…...

leetcode:1323. 6 和 9 组成的最大数字(python3解法)

难度&#xff1a;简单 给你一个仅由数字 6 和 9 组成的正整数 num。 你最多只能翻转一位数字&#xff0c;将 6 变成 9&#xff0c;或者把 9 变成 6 。 请返回你可以得到的最大数字。 示例 1&#xff1a; 输入&#xff1a;num 9669 输出&#xff1a;9969 解释&#xff1a; 改变…...

SpringBoot集成Redis Cluster集群(附带Linux部署Redis Cluster高可用集群)

目录 一、前言二、集成配置2.1、POM2.2、添加配置文件application.yml2.3、编写配置文件2.4、编写启动类2.5、编写测试类测试是否连接成功 一、前言 这里会使用到spring-boot-starter-data-redis包&#xff0c;spring boot 2的spring-boot-starter-data-redis中&#xff0c;默…...

LLaVA:visual instruction tuning

对近期一些MLLM(Multimodal Large Language Model)的总结 - 知乎本文将从模型结构&#xff0c;训练方法&#xff0c;训练数据&#xff0c;模型表现四个方面对近期的一些MLLM&#xff08;Multi-modal Large Language Models&#xff09;进行总结并探讨这四个方面对模型表现的影响…...

Python实现双目标定、畸变矫正、立体矫正

一&#xff0c;双目标定、畸变矫正、立体矫正的作用 双目目标定&#xff1a; 3D重建和测距&#xff1a;通过双目目标定&#xff0c;您可以确定两个摄像头之间的相对位置和朝向&#xff0c;从而能够根据视差信息计算物体的深度&#xff0c;进行三维重建和测距。姿态估计&#xf…...

showdoc 文件上传 (cnvd-2020-26585)

showdoc 文件上传 &#xff08;cnvd-2020-26585&#xff09; 描述 ShowDoc是一个非常适合IT团队的在线API文档、技术文档工具。通过showdoc&#xff0c;你可以方便地使用markdown语法来书写出美观的API文档、数据字典文档、技术文档、在线excel文档等等。 api_page存在任意文…...

Java数据类型,变量与运算符

1.字面常量 常量是在程序运行期间&#xff0c;固定不变的量称为常量。 public class HelloWorld{public static void main(String[] args){System.out.println("Hello,world");} } 在以上程序中&#xff0c;输出的Hello Word&#xff0c;其中的“Hello Word”就是…...

Linux nm命令

Linux的nm命令主要用于列出对象文件中的符号。以下是一些使用示例&#xff1a; 基本用法&#xff1a;只需运行’nm’命令&#xff0c;并将对象文件的名称作为输入传递给它。例如&#xff0c;我使用’nm’命令与’apl’elf 文件&#xff1a;nm apl。 在输出中为每个符号前面添加…...

iOS发布证书.p12文件无密码解决办法及导出带密码的新.p12文件方法

摘要&#xff1a; 本文将以iOS技术博主身份&#xff0c;分享解决使用无密码的.p12文件发布应用时遇到的问题&#xff0c;并介绍如何以带密码的方式重新导出.p12文件的方法。通过本文提供的步骤&#xff0c;开发者可以顺利完成证书的发布流程。 引言 在iOS应用发布过程中&…...

OpenCamera拍照的代码流程

按理来说&#xff0c;拍照应该是很简单的。随着功能的复杂&#xff0c;代码也是越来越多&#xff0c;流程越来越长。想看看地理位置是怎么保存的&#xff0c;于是就研究了一下OpenCamera的拍照流程。在回调时有点乱。 MainActivity clickedTakePhoto() takePicture() takePic…...

华为OD机考算法题:矩阵最大值

题目部分 题目矩阵最大值难度难题目说明给定一个仅包含 0 和 1 的 N*N 二维矩阵&#xff0c;请计算二维矩阵的最大值&#xff0c;计算规则如下&#xff1a; 1. 每行元素按下标顺序组成一个二进制数&#xff08;下标越大越排在低位&#xff09;&#xff0c;二进制数的值就是该行…...

【Javascript】函数之形参与实参

function c(a,b){return ab;}var sumc(3,4);console.log(sum);a,b为形参 3,4为实参 形参和实参是⼀⼀对应的数量可以不对应参数的类型不确定函数可以设置默认参数实参可以是字⾯量也可以是变量...

PAT 乙级1090危险品装箱

题目&#xff1a; 集装箱运输货物时&#xff0c;我们必须特别小心&#xff0c;不能把不相容的货物装在一只箱子里。比如氧化剂绝对不能跟易燃液体同箱&#xff0c;否则很容易造成爆炸。 本题给定一张不相容物品的清单&#xff0c;需要你检查每一张集装箱货品清单&#xff0c;…...

Response Header中不暴露Server(IIS)版本、ASP.NET及相关版本等信息

ASP MVC开发的Web默认情况下会在请求的回应中暴露Server、X-AspNet-Version、X-AspNetMvc-Version、X-Powered-By等相关服务端信息&#xff0c;公开这些敏感信息会存在一定的安全风险。 X-SourceFiles标头用于被IIS / IIS Express中某些调试模块理解&#xff0c;它包含到磁盘上…...

测试C#调用Vlc.DotNet组件播放视频

除了Windows Media Player组件&#xff0c;在百度上搜索到还有不少文章介绍采用Vlc.DotNet组件播放视频&#xff0c;关于Vlc.DotNet的详细介绍见参考文献1&#xff0c;本文学习Vlc.DotNet的基本用法。   VS2022中新建基于.net core的winform程序&#xff0c;在Nuget包管理器中…...

JS的事件委托(Event Delegation)

✨ 事件委托&#xff08;Event Delegation&#xff09;及其优势和缺点 &#x1f383; 什么是事件委托 事件委托是一种在JavaScript中处理事件的技术。它利用了事件的冒泡机制&#xff0c;将事件处理程序绑定到它们的共同祖先元素上&#xff0c;而不是直接绑定到每个子元素上。…...