美团8/31—24年秋招【技术】第四场

有10道选择题和3道编程题,选择题以数据结构和计算机网络的知识点为主,编程题只做出了前2道,第三道没时间了,这里记录一下解答过程。

第一题

题目描述

给定一字符串,统计字符串中意大写字母开头的子串的数量,如:
字符串:Abc abc Hbd Dss, 就是输出3。

思想思路

简单字符串按空格分割,分割后再循环遍历判断是否大写字母开头。

代码

package meituanqiu;import java.util.Scanner;public class one {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String s = scanner.nextLine();String[] str = s.split(" ");int cnt = 0;for (int i = 0; i < str.length; i++) {if(str[i] != null && str[i].length() > 0 && str[i].charAt(0) >= 'A' && str[i].charAt(0) <= 'Z'){cnt++;}}System.out.println(cnt);}
}

复杂度

时间复杂度:O(k), k为字符串的子串数量
空间复杂度:O(k), k为字符串的子串数量

第二题

题目描述

公路种树: 雇佣n个工人,每个点最多种1棵树,从左到右工人所在的位置为【a1, a2 … , an】。每个工人都会将自己所在位置右侧的树种满,且每位工人种树的区间长度相同,现在小美希望公路至少有k棵树,为了节约成本,每位工人种树的区间尽可能短,请你帮忙求出工人种树区间至少多长才能种棵树。

输入输出

输入:

3 6
1 2 5

输出:

3

解题思路

最少种树长度为1, 最大种树长度为k - n + 1, 在这个区间上进行二分长度判断能不能种k颗树,如果种树总数大于k, 则往左搜索, 小于k, 则往右搜索。直到找到最小种树区间。

代码

package meituanqiu;import java.util.Arrays;
import java.util.Scanner;public class two {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int k = sc.nextInt();int[] arr = new int[n];for (int i = 0; i < n; i++) arr[i] = sc.nextInt();Arrays.sort(arr);int l = 1, r = k - n + 1;while (l < r) { // 二分判断每个人种树的数量,每个人最少种一颗,最多种 k -  n  + 1 颗int mid = l + (r - l) / 2;if(cDIsMin(arr, n, mid, k)) r = mid;else l = mid + 1;}System.out.println(l);}// 计算在每个人种mid颗树的情况下,能否种够大于等于k颗树private static boolean cDIsMin(int[] arr, int n, int mid, int k) {long t = 0;int lastEnd = -1; //记录上一个结束的位置for (int i = 0; i < n; i++) {int start = arr[i];int end = start + mid - 1;if(start > lastEnd) { // 当前工人的位置大于上一个结束的位置,则种mid颗树t += mid;} else { //否则种去掉重叠区域颗树int p = end - lastEnd;if(p > 0) {t += p;}}lastEnd = Math.max(lastEnd, end); //上一个结束位置:当前位置和上一个结束位置的最大值}return t >= k;}
}

复杂度

时间复杂度:O(log(k)n)
空间复杂度:O(n)

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

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

相关文章

mysql实用系列:查询语句开启分页

在 Spring Boot 项目中使用 MyBatis 分页插件&#xff08;PageHelper&#xff09;的步骤如下&#xff1a; 添加依赖&#xff1a;在项目的 pom.xml 文件中添加 PageHelper 的依赖。 <dependency><groupId>com.github.pagehelper</groupId><artifactId>…

Leetcode面试经典150题-36-有效数独升级版-37.解数独

解法都在代码里&#xff0c;不懂就留言或者私信&#xff0c;比第一题稍微难点 public static void solveSudoku(char[][] board) {/**定义三个二维数组分别代表行、列、桶&#xff08;每9个格子&#xff09;*/boolean[][] rowExists new boolean[9][10];boolean[][] colExist…

穿越Java世界的继承奇旅:从基类到子类的华丽蜕变

1.为什么要继承 2.什么是继承以及继承的方式 3.继承的一些语法 4.父类成员的访问 5.关键字super 6.关键字protected 7.关键字final 8.继承与组合 一&#xff1a;为什么要继承 ①代码重用&#xff1a;继承允许我们重用、扩展或修改父类的属性和方法&#xff0c;而无需重…

【linxu】虚拟环境中Python 版本错乱:深入探究 Linux 虚拟环境的识别问题

【linxu】虚拟环境中Python 版本错乱&#xff1a;深入探究 Linux 虚拟环境的识别问题 问题描述&#xff1a;在服务器上&#xff0c;我配置了一个虚拟环境&#xff0c;明确指定使用 Python 3.8 版本。然而&#xff0c;当我激活该环境并检查 Python 版本时&#xff0c;意外地发现…

Golang中的timer和ticker

Golang中的timer和ticker Timer func AppTimer() {// st : time.Now()// // 创建timer&#xff0c;定时2s// timer : time.NewTimer(2 * time.Second)// timer.Stop()// //<-timer.C// timer.Reset(3 * time.Second)// <-timer.C// fmt.Println(time.Since(st))// Afte…

21. Map接口中keySet()、values()和entrySet()方法的区别是什么?它们各自返回什么内容?

在Java中&#xff0c;Map接口提供了keySet()、values()和entrySet()方法&#xff0c;这些方法用于访问Map中的不同部分。下面详细介绍它们的区别以及它们各自返回的内容。 1. keySet() 方法 作用: keySet()方法返回Map中所有键&#xff08;Key&#xff09;的集合。 返回类型: …

OSI七层模型中的数据链路层

图片&#xff1a;数据帧的格式 这里面的一个关键点是&#xff0c;数据的源IP和目标IP在哪里&#xff1f; 就在图中的“数据”里面&#xff0c;这个“数据”也就是网络层的数据包&#xff0c;如果是TCP类型的数据包&#xff0c;数据包里面就包含TCP类型的首部信息&#xff0c;…

实测数据处理(RD算法处理)——SAR成像算法系列(十)

系列文章目录 《SAR学习笔记-SAR成像算法系列&#xff08;一&#xff09;》 《距离多普勒算法&#xff08;RDA&#xff09;-SAR成像算法系列&#xff08;三&#xff09;》 文章目录 一、算法流程 1.1、回波信号生成 1.2、 距离脉冲压缩 1.3、距离徙动校正 1.4、方位脉冲压缩 …

midwayjs 框架使用 rabbitmq 消息延迟

插件rabbitmq_delayed_message_exchange是RabbitMQ官方提供的一种用于实现延迟消息的解决方案。该插件将交换机类型扩展至x-delayed-message&#xff0c;这种类型的交换机能够将消息暂时挂起&#xff0c;直到设定的延迟时间到达&#xff0c;才将消息投递到绑定的队列中。这一特…

代理 IP 在工业物联网中的大作用

随着科技的飞速发展&#xff0c;工业物联网&#xff08;IIoT&#xff09;已经成为现代工业的重要组成部分&#xff0c;它通过将各种物理设备、传感器、控制系统等通过互联网连接起来&#xff0c;实现了工业生产的智能化、自动化和远程监控。而在这个庞大的网络体系中&#xff0…

掌握CHECK约束:确保数据准确性的关键技巧

掌握CHECK约束&#xff1a;确保数据准确性的关键技巧 在数据库设计和管理中&#xff0c;数据的准确性和完整性至关重要。CHECK约束是SQL中一种强大的工具&#xff0c;用于限制列中的数据值&#xff0c;确保它们满足特定的条件。本文将详细介绍如何使用CHECK约束&#xff0c;并…

湖南师范大学教育科学学报

期刊名称&#xff1a; 湖南师范大学教育科学学报 国内统一刊号(CN)&#xff1a; 42-94 国际标准刊号(ISSN)&#xff1a;BM1712 刊物设有两大特色专题“古典教育”和“教科书研究”&#xff0c;常设“教育基本理论研究”、“教育哲学研究”、“教师教育研究”、“高等教育研究”…

Nginx跨域问题解决

背景&#xff1a;云服务器上面部署了后端和前端&#xff0c;前端开发在本地启一个web访问页面&#xff0c;然后访问云服务的后端&#xff0c;然后出现问题 问题&#xff1a;Access to XMLHttpRequest at ‘http://192.168.10.100:8070/auth/login’ from origin ‘http://loca…

[E二叉树] lc104. 二叉树的最大深度(dfs+自顶向下)

文章目录 1. 题目来源2. 题目解析 1. 题目来源 链接&#xff1a;104. 二叉树的最大深度 题单&#xff1a; 链表、二叉树与一般树&#xff08;前后指针/快慢指针/DFS/BFS/直径/LCA&#xff09; 2.2 自顶向下 DFS 2. 题目解析 思路&#xff1a; 很基础的 dfs 题目哈&#x…

k8s单master多node环境搭建-k8s版本低于1.24,容器运行时为docker

k8s 1.20.6单master多node环境搭建 1.环境规划2.初始化服务器1&#xff09;配置主机名2&#xff09;设置IP为静态IP3&#xff09;关闭selinux4&#xff09;配置主机hosts文件5&#xff09;配置三台主机之间免密登录6&#xff09;关闭交换分区swap&#xff0c;提升性能7&#xf…

github源码指引:C++嵌入式WEB服务器

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 相关专题&#xff1a; C嵌入式…

基于Spring Boot的文字识别系统

前端使用htmlcssjs&#xff0c;后端使用Spring Boot&#xff0c;数据库使用mysql&#xff0c;识别算法有两个&#xff0c;一个是使用百度OCR接口&#xff0c;一个是自己写一个python&#xff0c;用flask包装。 其中百度OCR接口可以去免费申请&#xff0c;然后把appid、apikey、…

Netty 知识目录

Netty 知识结构Netty Bootstrap/ServerBootstrapNetty EventLoopGroup/EventLoopNetty ChannelNetty ChannelPipeline/ChannelHandlerNetty ByteBufNetty TCPNetty UDPNetty HTTPNetty WebsocketNetty SSL/TLS

【王树森】Transformer模型(1/2): 剥离RNN,保留Attention(个人向笔记)

Transformer简介 Transformer 是一个Seq2Seq模型Tramsformer 不是RNNTransfomer 只有attention和全连接层机器翻译在大型数据集上完爆最好的RNN Review Attention for RNN 这节课讲的attention相对比于前两节课多了一个 v i v_i vi​&#xff0c;之前是用权重直接乘 h h h&…

【GD32】从零开始学GD32单片机 | USB通用串行总线接口+HID键盘例程(GD32F470ZGT6)

1. 简介 USB&#xff0c;全称通用串行总线&#xff0c;相信大家都非常熟悉了&#xff0c;日常生活只要用到手机电脑都离不开这个接口&#xff0c;像鼠标键盘U盘都需要使用这个接口进行数据传输&#xff0c;下面简单介绍一下。 1.1 版本标准 USB的标准总体可以分为低速、全速和…