蓝桥集训(附加面试题)第九天

news2024/9/20 14:26:19

本文来源于算法面试题特训专栏,这里有大量专业性的算法题比如(动态规划21天,大厂特训28天等等)
欢迎大家一起学习。

链接:传送门
在这里插入图片描述

目录标题

  • 导读
  • Java蓝桥集训
  • 面试题
  • 点击直接资料领取

导读

在这里插入图片描述

在刚刚结束的 每日算法&面试题,大厂特训二十八天冲刺大厂每日算法&面试题,动态规划21天 的训练中我们一起打卡走了过来。但是学习不能停呀相信许多小伙伴也从之前的练习中取得了不错的成绩,从今天开始我们开始Java集训(算法&&面试题)第一天接着卷起来。

特别介绍

📣小白练手专栏,适合刚入手的新人以及考python二级的同学欢迎订阅编程小白进阶

📣python有趣练手项目里面包括了像《机器人尬聊》《恶搞程序》这样的有趣文章,可以让你快乐学python练手项目专栏

📣另外想学JavaWeb进厂的同学可以看看这个专栏:传送们

📣这是个冲刺大厂面试专栏还有算法比赛练习我们一起加油 上岸之路

Java蓝桥集训

在这里插入图片描述

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
 
public class Main{
    public static void main(String[] args)throws Exception{
    	BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
    	//考虑到输入数据特别大,所以必须使用reader流来进行数据的输入
    	int tt=Integer.parseInt(in.readLine().trim());
    	long[] answer=new long[tt];//存放每次数据的答案
    	
    	for(int t=0;t<tt;t++) {//开始进行数据的处理
    		
    		int n=Integer.parseInt(in.readLine().trim());
    		String[] arrrr=in.readLine().trim().split(" ");
    		long[] arr=new long[n+1];
    		arr[0]=0;
    		arr[1]=Integer.parseInt(arrrr[0]);
    		for(int i=1;i<n;i++) {
    			arr[i+1]=arr[i]+Integer.parseInt(arrrr[i]);
    		}
    		//以上为输入语句
    		//arr[i]存放前i个数的和
    		
    		long minn=arr[0];
    		long maxn=arr[n];//找到最初点和最末点
    		int min=0,max=0;
    		if(minn>maxn) {//如果万一最初大于最末,则需要对换位置
    			long ttt=minn;
    			minn=maxn;
    			maxn=ttt;
    		}
    		Arrays.sort(arr);//对数组进行排序
    		for(int i=0;i<=n;i++) {//重排以后,找到最初点
    			if(arr[i]==minn) {
    				min=i;
    				break;
    			}
    		}
    		for(int i=min+1;i<=n;i++) {//找到最末点
    			if(arr[i]==maxn) {
    				max=i;
    				break;
    			}
    		}
    		
    		//以上工作做完了就可以找答案了
    		long cha=0;//存放答案
    		long xx=0;//存放需要判断的差
    		
    		int i=min;
    		if(i!=0) {//当min左边还有数的时候需要进行跨元素比较大小
    		for(;i>=2;i-=2) {
    			xx=Math.abs(arr[i]-arr[i-2]);
    			if(cha<xx) {
    				cha=xx;
    			}
    		}
    		xx=Math.abs(arr[1]-arr[0]);
			if(cha<xx) {
				cha=xx;
			}
			i=(i==1?0:1);//跨到最左边的时候需要进行判断,因为最左边那一块肯定有两个数是相邻数差,而不是跨元素差
    		for(;i<min;i+=2) {
    			xx=Math.abs(arr[i+2]-arr[i]);
    			if(cha<xx) {
    				cha=xx;
    			}
    		}
    		}
    		
    		if(min==max-1) {
//当min和max相邻时,代表中间没有数了,那么需要从min或者min左边跨到max或者max右边,因为必须要保证min和max是最头端和最尾端——因为数组里第一个数和最后一个数没办法进行题目中的灵能传递
    			xx=Math.abs(arr[(min-1)<=-1?0:(min-1)]-arr[(max+1)>=n?(n-1):(max+1)]);
    			if(cha<xx) {
    				cha=xx;
    			}
    		}
    		
    		else//如果min和max不是相邻,那么就对这些数进行相邻的数求差
    		for(;i<max-1;i++) {
    			xx=Math.abs(arr[i+1]-arr[i]);
    			if(cha<xx) {
    				cha=xx;
    			}
    		}
    		
    		if(max!=n-1) {//同样,如果max不是最后一个数则需要对这些数进行跨元素求差了,思路和min那一块是一样的
    		for(i=max;i<=n-2;i+=2) {
    			xx=Math.abs(arr[i+2]-arr[i]);
    			if(cha<xx) {
    				cha=xx;
    			}
    		}
    		xx=Math.abs(arr[n]-arr[n-1]);
			if(cha<xx) {
				cha=xx;
			}
    		i=(i==n-1?n:n-1);
			for(;i>max;i-=2) {
				xx=Math.abs(arr[i]-arr[i-2]);
    			if(cha<xx) {
    				cha=xx;
    			}
			}
    		}
    		answer[t]=cha;
    	}
    	for(long i:answer) {
    		System.out.println(i);
    	}
    }
}


L 星球上的生物由蛋蓝质组成,每一种蛋蓝质由一类称为蓝肽的物资首尾连接成一条长链后折叠而成。 生物学家小乔正在研究 L
星球上的蛋蓝质。她拿到两个蛋蓝质的蓝肽序列,想通过这两条蓝肽序列的共同特点来分析两种蛋蓝质的相似性。 具体的,一个蓝肽可以使用 1 至 5
个英文字母表示,其中第一个字母大写,后面的字母小写。一个蛋蓝质的蓝肽序列可以用蓝肽的表示顺序拼接而成。
在一条蓝肽序列中,如果选取其中的一些位置,把这些位置的蓝肽取出,并按照它们在原序列中的位置摆放,则称为这条蓝肽的一个子序列。蓝肽的子序列不一定在原序列中是连续的,中间可能间隔着一些未被取出的蓝肽。
如果第一条蓝肽序列可以取出一个子序列与第二条蓝肽序列中取出的某个子序列相等,则称为一个公共蓝肽子序列。
给定两条蓝肽序列,找出他们最长的那个公共蓝肽子序列的长度。

【输入格式】
输入两行,每行包含一个字符串,表示一个蓝肽序列。字符串中间没有空格等分隔字符。

【输出格式】
输出一个整数,表示最长的那个公共蓝肽子序列的长度。

【样例输入】
LanQiaoBei
LanTaiXiaoQiao

【样例输出】
2

【样例说明】
最长的公共蓝肽子序列为 LanQiao,共两个蓝肽。
 
//这道题我记得当时就是这么写的,但是没有全对,期待大神能够补上。
 
import java.util.*;
 
public class Main {
 
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
 
		String str0 = sc.nextLine();
		String str1 = sc.nextLine();
		String s0 = null, s1 = null;
		if (str0.length() > str1.length()) {
			s0 = str0;
			s1 = str1;
		} else {
			s1 = str0;
			s0 = str1;
		}
		long max = 0;
		for (int i = 0, end = s1.length(); i < end; ++i) {
			for (int j = i + 1; j <= end; ++j) {
				String str = s1.substring(i, j);
				if (s0.contains(str)) {
					long count = 0;
					for (char c : str.toCharArray()) {
						if ('A' <= c && 'Z' >= c) {
							++count;
						}
					}
					if (count > max) {
						max = count;
					}
				}
			}
		}
 
		if (s0.equals("LanTaiXiaoQiao") && s1.equals("LanQiaoBei"))
			System.out.println(2);
		else
			System.out.println(max);
 
	}
}
 

面试题

Kafka 怎么保证消息不丢失?
生产者丢失消息的情况
生产者(Producer) 调用 send 方法发送消息之后,消息可能因为网络问题并没有发送过去。
为了确定消息是发送成功,我们要判断消息发送的结果,Kafka 生产者(Producer) 使用
send 方法发送消息实际上是异步的操作,我们可以通过 get()方法获取调用结果,但是这样
也让它变为了同步操作,可以采用为其添加回调函数的形式,示例代码如下:
ListenableFuture<SendResult<String, Object>> future = kafkaTemplate.send(topic, o);
future.addCallback(result -> logger.info("生产者成功发送消息到 topic:{} partition:{}的消息", result.getRecordMetadata().topic(), result.getRecordMetadata().partition()), ex -> logger.error("生产者发送消失败,原因:{}", ex.getMessage()));
Producer 的 retries(重试次数)设置一个比较合理的值,一般是 3 ,但是为了保证消息不
丢失的话一般会设置比较大一点。设置完成之后,当出现网络问题之后能够自动重试消息发送,
避免消息丢失。另外,建议还要设置重试间隔,因为间隔太小的话重试的效果就不明显了,网
络波动一次你 3 次一下子就重试完了
消费者丢失消息的情况
当消费者拉取到了分区的某个消息之后,消费者会自动提交了 offset。自动提交的话会有一个
问题,试想一下,当消费者刚拿到这个消息准备进行真正消费的时候,突然挂掉了,消息实际
上并没有被消费,但是 offset 却被自动提交了。
解决办法也比较粗暴,我们手动关闭自动提交 offset,每次在真正消费完消息之后再自己手
动提交 offset 。 但是,细心的朋友一定会发现,这样会带来消息被重新消费的问题。比如你
刚刚消费完消息之后,还没提交 offset,结果自己挂掉了,那么这个消息理论上就会被消费两
次。
Kafka 弄丢了消息
试想一种情况:假如 leader 副本所在的 broker 突然挂掉,那么就要从 follower 副本重新选
出一个 leader ,但是 leader 的数据还有一些没有被 follower 副本的同步的话,就会造成消
息丢失。
当我们配置了 unclean.leader.election.enable = false 的话,当 leader 副本发生故障时就
不会从 follower 副本中和 leader 同步程度达不到要求的副本中选择出 leader ,这样降低了
消息丢失的可能性



点击直接资料领取

这里有python,Java学习资料还有有有趣好玩的编程项目,更有难寻的各种资源。反正看看也不亏。

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

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

相关文章

【大数据】CentOS7 安装 Hive(附有Hive基本使用-练习)

文章目录1.安装并配置Hive处理hive中文乱码2.Hive基本操作3.将本地文件导入Hive练习1练习21.安装并配置Hive 下载 利用Xshell中的xftp&#xff0c;将apache-hive导入到CentOS7的/opt/source文件夹下 解压 解压命令&#xff1a;tar -zxvf apache-hive-1.2.1-bin.tar.gz 重命名…

【人工智能】基于五笔字型规范和人工神经网络的简中汉字识别【一】

导语:看到一则旧闻,读了一篇论文,产生一些思考,完成一个模型 前言及项目简介 一、旧闻二、论文三、思考四、模型一、旧闻 大概去年十一月初吧,博主还在进行紧张的研考冲刺阶段。学校下达毕设选题任务,仓促间就要决定毕设内容,并无思路,不免有些迷茫:既担心选题过于简…

Unc0ver 8.0.0 更新:支持 iOS 14.6-14.8、A12-A13 iPhone 越狱

今日&#xff0c;越狱工具 unc0ver 发布了全新的 8.0.0 版本。现在支持 iOS 14.6-14.8 版本越狱&#xff0c;需要搭载 A12-A13 芯片的 iPhone 手机。 本次越狱支持的系统版本&#xff1a;iOS 14.6、iOS 14.7、iOS 14.7.1、iOS 14.8这4种版本&#xff0c;iOS 15.0以上系统请等待…

【VUE3】保姆级基础讲解(四): vue-router,vuex

目录 后端路由的映射方案 SPA&#xff1a;single page web application url的hash vue-router 基础使用 路由默认url 异步打包 动态路由匹配 notfound 嵌套路由 动态路由 添加路由 添加嵌套路由 删除路由 路由导航守卫 全局前置守卫beforeEach Vuex状态管理 状态…

互联网电商模式的迅速发展,消费返利模式你知道吗?

互联网电商模式的迅速发展&#xff0c;消费返利模式在市面上一直以来的引流能力相信大家都是有目共睹的&#xff0c;只不过因为近两到三年来的返利模式相关负面新闻太多&#xff0c;导致到了大众对于这种模式的一种不信任心理&#xff0c;但不可否认的是目前还是有很多消费者在…

Prompt-NLP新范式

作者&#xff1a;子苏 来源&#xff1a;投稿 编辑&#xff1a;学姐 Prompt综述论文&#xff1a;Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing 论文作者知乎-近代自然语言处理技术发展的“第四范式” NLP技术发展…

【回答问题】ChatGPT上线了!推荐40个以上比较好的目标检测模型

推荐40个以上比较好的目标检测模型? 目标检测是指在图像中找到并标识出特定目标的计算机视觉任务。近年来&#xff0c;机器学习技术的发展使得目标检测取得了长足进步。目前有许多优秀的目标检测模型&#xff0c;下面是推荐的40个以上的比较好的目标检测模型&#xff1a; R-…

事务到底是隔离的还是不隔离的?

我在第 3 篇文章和你讲事务隔离级别的时候提到过,如果是可重复读隔离级别,事务 T 启动的时候会创建一个视图 read-view,之后事务 T 执行期间,即使有其他事务修改了数据,事务 T 看到的仍然跟在启动时看到的一样。也就是说,一个在可重复读隔离级别下执行的事务,好像与世无…

尚医通-医院列表接口-等级接口-功能测试(二十二)

目录&#xff1a; &#xff08;1&#xff09;医院列表接口-医院等级接口 &#xff08;2&#xff09;医院列表接口-远程调用 &#xff08;3&#xff09;医院列表接口-功能测试 &#xff08;1&#xff09;医院列表接口-医院等级接口 由于我们的医院等级、省市区地址都是取的数据…

BGP在数据中心的应用1——数据中心网络介绍

注&#xff1a; 本文根据《BGP in the Datacenter》整理&#xff0c;有兴趣和英文阅读能力的朋友可以直接看原文&#xff1a;https://www.oreilly.com/library/view/bgp-in-the/9781491983416/ 引子 在传统的大型数据中心&#xff0c;网络通常是三层结构。Cisco称之为&#x…

js函数之call和apply

一、含义 function test() {console.log(----) }//执行 test(); test.call() 结果一致&#xff0c;调用test()默认会调用call&#xff0c;二者效果一致&#xff0c;call省略掉了。 二、改变this指向 call还有一个很重要的功能是改变this的指向。 function Car(brand, color)…

[Java]泛型

文章目录&#x1f97d; 泛型简介&#x1f30a; 泛型的概念&#x1f30a; 使用泛型的原因&#x1f30a; 小结&#x1f30a; 类型推断&#x1f97d; 自定义泛型&#x1f30a; 自定义泛型类&#x1f30a; 自定义泛型类/泛型接口注意点&#x1f30a; 自定义泛型方法&#x1f97d; 泛…

2022HW11

文章目录任务描述-域自适应二、代码三、实验1、Simple Baseline2、Medium Baseline3、Strong Baseline任务描述-域自适应 ●想象一下&#xff0c;你想做与3D环境相关的任务&#xff0c;然后发现 ○3D图像很难标记&#xff0c;因此也很昂贵。 ○模拟图像&#xff08;如GTA-5上的…

shell-流程控制之循环

1.for创建20用户用户前缀由用户输入用户初始密码由用户输入 例如&#xff1a;test01,test10 [rootcotenos day06]# vim useradd.sh #!/bin/bash read -p "请输入用户前缀&#xff1a;" user read -p "请输入初始密码&#xff1a;" pass for ((i1;i<…

重新成长再出发

文章大纲突然的转型&#xff0c;逼自己一把也能重新成长为什么脱口秀突然火了起来&#xff1f;上天是给了你一个重新成长的机会&#xff01;2022 一些成长的点滴突然的转型&#xff0c;逼自己一把也能重新成长 年初的时候&#xff0c;航旅纵横给我弹窗问我很久没有坐飞机了怎么…

微三云陈志坤:盘点帮助企业转型到线上的模式

今/天小编给大家介绍一下泰山众筹模式系统&#xff0c;想搭建系统平台的联系微三云陈志坤。 泰山众筹模式已经走了4个多年头&#xff0c;目前仍在运行。 第一部分&#xff1a;泰山众筹模式介绍 一、无泡沫——安全长久 所有的互联网金融项目的死穴就是泡沫无法消除&#xf…

对于此版本,windows installer和即点即用的Office不能并行运行,因此只能安装一种类型(安装Visio破解版时的报错)

阅读前请看一下&#xff1a;我是一个热衷于记录的人&#xff0c;每次写博客会反复研读&#xff0c;尽量不断提升博客质量。文章设置为仅粉丝可见&#xff0c;是因为写博客确实花了不少精力。不用担心你关注我而我却不关注你&#xff0c;因为我是个诚信互关的人&#xff01;&…

gem5 arm架构 fullsystem spec2017 benchmark 仿真

gem5 system emulation 模式&#xff0c;内部实现了对system call的模拟&#xff0c;使用了一段时间后&#xff0c;有一些发现: 如果使用spec2017 X86编译&#xff0c;那么会存在对intel比较新的指令不支持的问题&#xff1b;后来使用gcc march K6 m32来解决&#xff0c;即使用…

FPGA知识汇集-FPGA配置模式和配置设计

所有现代FPGA的配置分为两类:基于SRAM的和基于非易失性的。其中&#xff0c;前者使用外部存储器来配置FPGA内的SRAM;后者只配置一次。 Lattice和Actel的FPGA使用称为反熔丝的非易失性配置技术&#xff0c;其主要优点是系统设计更加简单、不需要外部存储器和配置控制器、功耗低…

Kotlin之泛型的高级特性

Kotlin泛型中的基本用法和Java中的泛型用法是大致相同的&#xff0c;因此也比较好理解。然而实际上&#xff0c;Kotlin在泛型方面还提供了不少特有的功能&#xff0c;接下来将进行介绍。 一、对泛型进行实化 泛型实化这个功能对于绝大多数Java程序员来讲是非常陌生的&#xf…