【Java笔试强训 22】

news/2024/10/23 2:21:21/

🎉🎉🎉点进来你就是我的人了
博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!

欢迎志同道合的朋友一起加油喔🤺🤺🤺


目录

一、选择题

二、编程题

   🔥小易的升级之路

   🔥出字符串中第一个只出现一次的字符



一、选择题

1、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。
A 顺序表
B 双链表
C 带头结点的双循环链表
D 单循环链表
正确答案: A
参考答案:
数组取、尾插、尾删元素O(1)
2、下列数据结构具有记忆功能的是?
A 队列
B 循环队列
C 栈
D 顺序表
正确答案: C
3、循环两列放在一维数组A[0…M-1]中,end1指向队头元素,end2指向队尾元素的后一个位置。假设队列两端均可进行入队和出队操作,队列中最多能容纳M-1个元素。初始时为空,下列判断队空和队满的条件中,正确的是 ()
A 队空:end1end2; 队满:end1(end2+1)modM
B 队空:end1end2; 队满:end2(end1+1)mod(M-1)
C 队空:end2==(end1+1)modM ; 队满:end1==(end2+1)modM
D 队空:end1==(end2+1)modM; 队满:end2==(end1+1)mod(M-1)
正确答案: A
参考答案:
数组长度就是M长度
对于循环队列来讲,要浪费一个空间用来判断队列是否已满
a.能存储的元素个数为M-1
b.最终判断是否已满mod M
队列是否为空
end1 == end2 为空
end1 == (end2 + 1) mod M
4、对递归程序的优化的一般的手段为()
A 尾递归优化
B 循环优化
C 堆栈优化
D 停止值优化
正确答案: A
参考答案:
比如我们的快速排序和归并排序,在递归的终止条件 I是区间最左侧,r是区间最右侧// 终止条件(I >= r){ return;}

// 在递归终止条件处进行优化
// 当区间个数较小时,采用插入排序来优化(r -l<= 15) => 采用插入排序
5、将一颗有 100 个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根节点编号为 1 ,则编号为 98 的节点的父节点编号为()
A 47
B 48
C 49
D 50
正确答案:C
参考答案:
根节点从1开始编号 根节点从0开始编号,在从1编号的基
设父节点编号为x 础上增加1个偏移量即可
left = 2x left = 2x + 1
right=2x + 1 right=2x+2 d
设现在孩子结点编号为n
父节点编号就是x/2 父节点(x-1)/2
6、将一棵二叉树的根结点放入队列,然后递归的执行如下操作,将出队结点所有子结点加入队。以上操作可以实现哪种遍历?
A 前序遍历
B 中序遍历
C 后序遍历
D 层序遍历
正确答案:D
参考答案:
用到队列的遍历为层序遍历,前中后遍历借助的是栈
7、有 1000 个无序的整数,希望使用最快的方式找出前 50 个最大的,最佳的选择是( )
A 冒泡排序
B 基数排序
C 堆排序
D 快速排序
正确答案: C
参考答案:
topk问题,在一组数据中找到k大个元素是利用堆或者优先级队列
8、以下数据结构说法,错误的是___?
A 红黑树插入操作的平均时间复杂度为O(logn),最坏时间复杂度为O(logn)
B B+树插入操作的平均时间复杂度为O(logn),最坏时间复杂度为O(logn)
C Hash表插入操作的平均时间复杂度为O(logn),最坏时间复杂度为O(n)
D 排序链表插入操作的平均时间复杂度为O(n),最坏时间复杂度为O(n)
正确答案: C

 9、将两个各有n个元素的有序表归并成一个有序表,最少的比较次数是()
A 2n
B 2n-1
C n-1
D n
正确答案: D
参考答案:
两个有序的子区间个数都为n,最好的情况为第二个区间都比第一个区间大,只需要比较n次即可
10、下列排序法中,每经过一次元素的交换会产生新的逆序的是( )
A 快速排序
B 冒泡排序
C 简单插入排序
D 简单选择排序
正确答案: A
参考答案:
在数据元素的序列中,对于某个元素,如果其后存在一个元素小于它,则称之为存在一个逆序。冒泡排序只交换相邻元素,但不是每次移动都产生新的逆序。简单插入排序每一次比较后最多移掉一个逆序。快速排序每一次交换移动都会产生新的逆序,因为当不会有新的逆序产生时,本轮比较结束。简单选择排序的基本思想是先从所有 n 个待排序的数据元素中选择最小的元素,将该元素与第一个元素交换,再从剩下的 n-1 个元素中选出最小的元素与第 2 个元素交换,这样做不会产生逆序。故本题答案为 A 选项。


二、编程题

   🔥小易的升级之路

  小易的升级之路_牛客题霸_牛客网

 【解题思路】:
本题的能力值的累加分两种情况,一种是直接相加bi,一种是累加当前能力值于bi的最大公约数。最大公约数可以通过碾转相除法求得:a与b的最大公约数相当于b与a,b余数的最大公约数。如果求余结果为0, 则b为所求结果

import java.util.*;
import java.io.*;
public class Main {public static int func(int a,int b){int c=0;while((c=a%b)!=0){a=b;b=c;}return b;}public static void main(String[] args) throws Exception{//循环读入BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));String s;while((s=reader.readLine())!=null){String[] arr=s.split(" ");int num = Integer.parseInt(arr[0]);int c = Integer.parseInt(arr[1]);//读入boss的防御值for(int i=0;i<num;i++){int power=Integer.parseInt(reader.readLine());if(c>=power){c+=power;}else{c+=func(c,power);}}System.out.println(c);}}
}

🔥出字符串中第一个只出现一次的字符

找出字符串中第一个只出现一次的字符_牛客题霸_牛客网

 【解题思路】:
用一个数组的每一个位置表示对应的位置。对应的字符位置存放字符出现的次数。统计完之后,遍历输入字符,遇到第一个只出现一次的字符就停止

import java.util.*;
import java.io.*;
public class Main {public static void findFirst(String str){char[] arr=str.toCharArray();int[] count=new int[128];for(int i=0;i<arr.length;i++){count[arr[i]]++;}boolean flag=false;for(int i=0;i<arr.length;i++){if(count[arr[i]]==1){System.out.println(arr[i]);flag=true;break;}}if(!flag){System.out.println(-1); }} public static void main(String[] args) throws Exception{BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));String s;while((s=reader.readLine())!=null){findFirst(s);}}
}


http://www.ppmy.cn/news/58402.html

相关文章

Microsoft office Word 批注相关问题解决

Microsoft office word 批注相关问题解决 目录 Microsoft office word 批注相关问题解决1.增添并显示批注2.批注显示及取消操作3.更改批注者姓名4.将Microsoft office Word文档中已批注的名字以及缩写修改为自己需要的4.1将Microsoft office Word文档中已批注的名字修改为自己需…

用格林童话教你1分钟清晰JS加密

在许多格林童话中&#xff0c;我们可以看到许多隐藏的玄机和谜题&#xff0c;就像JavaScript代码一样。为了保护您的代码安全&#xff0c;我们可以使用JavaScript混淆加密技术来隐藏代码中的逻辑和关键信息。在本文中&#xff0c;我们将以“灰姑娘”为例&#xff0c;介绍如何使…

Elasticsearch:定制 Elasticsearch 镜像

在很多时候&#xff0c;我们希望定制我们的 Elasticsearch 镜像&#xff0c;比如&#xff0c;我们需要安装一些额外的插件&#xff0c;或者如果我们想要一个带有同义词文件和自定义配置的 Elasticsearch&#xff1f;或者我们需要一些相应的配置等。我们想在每次的 docker 部署中…

微服务和领域驱动

一、微服务 1.1 什么是微服务 微服务就是一些协同工作的小而自治的服务。 关键词&#xff1a; 小而自治 -- 小 “小”这个概念&#xff0c;一方面体现在微服务的内聚性上。 内聚性也可以称之为单一职责原则&#xff1a;“把因相同原因而变化的东西聚合到一起&#xff0c;…

Redis学习——day01

Redis学习基础 Nosql&#xff1a;Redis入门&#xff1a;Redis安装&#xff1a;Windows&#xff1a;Linux安装&#xff1a; Nosql&#xff1a; Nosql Not Only Sql&#xff08;不仅仅Sql&#xff09;NoSQL&#xff0c;泛指非关系型的数据库。随着互联网web2.0网站的兴起&#…

检测是否所有a都在b前面

题目描述 现在给你一个仅由字符 a 和 b 组成的字符串 s 作为输入。你需要编写一个程序来实现字符串中每个 a 都出现在每个 b 之前&#xff0c;如果满足要求&#xff0c;那我们就输出 True &#xff1b;否则&#xff0c;我们就输出 False 。 输入输出格式 输入格式 输入字符 …

java学习之第十章作业

目录 第一题 第二题 第三题 第四题 第五题 第六题 代码的问题点 第七题 第八题 第一题 package homework;public class HomeWork01 {public static void main(String[] args) {Car c new Car();//创建新对象&#xff0c;没有实参Car c1 new Car(100);//1.创建一个新的…

快速了解车联网V2X通信

自动驾驶拥有极其巨大的潜力&#xff0c;有可能改变我们的出行方式。它不仅有望永远改变车辆的设计和制造&#xff0c;还会永远改变汽车的所有权乃至整个交通运输业务。要实现全自动驾驶的目标&#xff0c;开发人员需要开发极为复杂的软件&#xff0c;软件中融入的人工智能(AI)…