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

备战秋招 | 笔试强化22

目录

一、选择题

二、编程题

三、选择题题解

四、编程题题解


一、选择题

1、在有序双向链表中定位删除一个元素的平均时间复杂度为

A. O(1)

B. O(N)

C. O(logN)

D. O(N*logN)

2、在一个以 h 为头指针的单循环链表中,p 指针指向链尾结点的条件是( )

A. p->next==NULL

B. p->next==h

C. p->next->next==h

D. p->data==-1

3、在双向链表中指针p的结点前插入一个指针q的结点操作是()

A. p->Llink=q;q->Rlink=p;p->Llink->Rlink=q;q->Llink=q;

B. p->Llink=q;p->Llink->Rlink=q;q->Rlink=p;q->Llink=p->Llink;

C. q->Rlink=p;q->Llink=p->Llink;p->Llink->Rlink=q;p->Llink=q;

D. q->Llink=p->Llink;q->Rlink=q;p->Llink=q;p->Llink=q;

4、若用数组S[0…n]作为两个栈S1和S2的存储结构,对任何一个栈只有当S全满时才不能做入栈操作。为这两个栈分配空间的最佳方案是

A. S1的栈底位置为0,S2的栈底位置为n

B. S1的栈底位置为0,S2的栈底位置为n/2

C. S1的栈底位置为1,S2的栈底位置为n/2

5、循环队列的存储空间为 Q(1:200) ,初始状态为 front=rear=200 。经过一系列正常的入队与退队操作后, front=rear=1 ,则循环队列中的元素个数为( )

A. 0或200

B. 1

C. 2

D. 199

6、将一棵二叉树的根结点放入队列,然后递归的执行如下操作,将出队结点所有子结点加入队。以上操作可以实现哪种遍历()

A. 前序遍历

B. 中序遍历

C. 后序遍历

D. 层序遍历

7、已知数据元素为(34,76,45,18,26,54,92,65),按照依次插入节点的方法生成一棵二叉排序树,则该树的深度为()

A. 7

B. 6

C. 4

D. 5

8、有 1000 个无序的整数,希望使用最快的方式找出前 50 个最大的,最佳的选择是( )

A. 冒泡排序

B. 基数排序

C. 堆排序

D. 快速排序

9、已知一个线性表(38,25,74,63,52,48),假定采用散列函数h(key) = key%7 计算散列地址,并散列存储在散列表A[0....6]中,若采用线性探测方法解决冲突,则 在该散列表上进行等概率成功查找的平均查找长度为()

A. 1.5

B. 1.7

C. 2.0

D. 2.3

10、下面的排序方法中,关键字比较次数与记录的初始排列无关的是______。

A. 希尔排序

B. 冒泡排序

C. 直接插入排序

D. 直接选择排序

二、编程题

1、小易升级之路    题目链接

2、找出字符串中第一个只出现一次的字符    题目链接

三、选择题题解

1、在有序双向链表中定位删除一个元素的平均时间复杂度为

A. O(1)

B. O(N)

C. O(logN)

D. O(N*logN)

正确答案:B

题解:

         我们要是想在双向链表中删除一个元素,我们就必须知道删除结点的位置,因此需要遍历链表;时间复杂度为O(N);

2、在一个以 h 为头指针的单循环链表中,p 指针指向链尾结点的条件是( )

A. p->next==NULL

B. p->next==h

C. p->next->next==h

D. p->data==-1

正确答案:B

题解:

         既然是循环链表,首尾必然相连,最后一个结点的下一个结点必然是头节点;故选B;

3、在双向链表中指针p的结点前插入一个指针q的结点操作是()

A. p->Llink=q;q->Rlink=p;p->Llink->Rlink=q;q->Llink=q;

B. p->Llink=q;p->Llink->Rlink=q;q->Rlink=p;q->Llink=p->Llink;

C. q->Rlink=p;q->Llink=p->Llink;p->Llink->Rlink=q;p->Llink=q;

D. q->Llink=p->Llink;q->Rlink=q;p->Llink=q;p->Llink=q;

正确答案:C

题解:

         对于此题,如若不清楚,建议采用画图的方式更加清晰明了;如下图所示;

4、若用数组S[0…n]作为两个栈S1和S2的存储结构,对任何一个栈只有当S全满时才不能做入栈操作。为这两个栈分配空间的最佳方案是

A. S1的栈底位置为0,S2的栈底位置为n

B. S1的栈底位置为0,S2的栈底位置为n/2

C. S1的栈底位置为1,S2的栈底位置为n/2

正确答案:A

题解:

         若想做到任意一个栈满都另一个栈都无法插入,必须使得他们的入栈增长方向不同,若一个向上增长,一个向下增加,此时他们任意一个满了,另一个都无法插入;

5、循环队列的存储空间为 Q(1:200) ,初始状态为 front=rear=200 。经过一系列正常的入队与退队操作后, front=rear=1 ,则循环队列中的元素个数为( )

A. 0或200

B. 1

C. 2

D. 199

正确答案:A

题解:

         此题循环队列并没有考虑少用一个空间区分空状态和满状态,因此此题选A;

6、将一棵二叉树的根结点放入队列,然后递归的执行如下操作,将出队结点所有子结点加入队。以上操作可以实现哪种遍历()

A. 前序遍历

B. 中序遍历

C. 后序遍历

D. 层序遍历

正确答案:D

题解:

         妥妥的层序遍历,若不清楚,建议自己实现一次层序遍历;

7、已知数据元素为(34,76,45,18,26,54,92,65),按照依次插入节点的方法生成一棵二叉排序树,则该树的深度为()

A. 7

B. 6

C. 4

D. 5

正确答案:D

题解:

         注意,此题是二叉排序树,不是平衡二叉排序树,我们依次插入可以得到下图;

8、有 1000 个无序的整数,希望使用最快的方式找出前 50 个最大的,最佳的选择是( )

A. 冒泡排序

B. 基数排序

C. 堆排序

D. 快速排序

正确答案:C

题解:

         经典TopK问题,选择堆排序;

9、已知一个线性表(38,25,74,63,52,48),假定采用散列函数h(key) = key%7 计算散列地址,并散列存储在散列表A[0....6]中,若采用线性探测方法解决冲突,则 在该散列表上进行等概率成功查找的平均查找长度为()

A. 1.5

B. 1.7

C. 2.0

D. 2.3

正确答案:C

题解:

         我们画出散列表分布并计算每个数据查找次数,最后便可求出平均查找次数,如下图所示;

10、下面的排序方法中,关键字比较次数与记录的初始排列无关的是______。

A. 希尔排序

B. 冒泡排序

C. 直接插入排序

D. 直接选择排序

正确答案:D

题解:

         直接插入排序的思想是每次都找出范围内最小值或最大值,然后放入相应位置,与数列中原本顺序无关;

四、编程题题解

1、小易升级之路 

思路:模拟题,若怪兽战力比小易低,我们直接加上该怪兽的战力;若怪兽战力比小易高,我们求出两者的最大公约数,然后加上该公约数;

#include <iostream>
#include <vector>
using namespace std;int get_divi(int a, int b)
{int c = a % b;while(c){a = b;b = c;c = a % b;}return b;
}int main() 
{int n, a;while(cin >> n >> a){vector<int> v(n, 0);for(int i = 0; i < n; i++){cin >> v[i];}for(auto e : v){if(e <= a){a += e;}else {a += get_divi(a, e);}}cout << a << endl;}return 0;
}

2、找出字符串中第一个只出现一次的字符

思路:我们采用计数排序的思想,开一个256大小的整型数组,将字符串中的每一个字符都一 一映射到数组中每一个位置,每次遇到字符串的字符,相应位置++,最后遍历字符串,找出第一个只出现一次的字符;

#include <iostream>
#include <string>
using namespace std;int main() 
{int count[256] = { 0 };string str;cin >> str;for(auto ch : str){count[ch]++;}// 遍历原字符串int i = 0;while(i < str.size()){if(count[str[i]] == 1){cout << str[i] << endl;break;}i++;}if(i == str.size())cout << -1 << endl;return 0;
}

相关文章:

备战秋招 | 笔试强化22

目录 一、选择题 二、编程题 三、选择题题解 四、编程题题解 一、选择题 1、在有序双向链表中定位删除一个元素的平均时间复杂度为 A. O(1) B. O(N) C. O(logN) D. O(N*logN) 2、在一个以 h 为头指针的单循环链表中&#xff0c;p 指针指向链尾结点的条件是( ) A. p->ne…...

LeetCode ACM模式——哈希表篇(二)

刷题顺序及思路来源于代码随想录&#xff0c;网站地址&#xff1a;https://programmercarl.com 202. 快乐数 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。然后重复…...

hadoop 3.1.3集群搭建 ubuntu20

相关 hyper-v安装ubuntu-20-server hyper-v建立快照 hyper-v快速创建虚拟机-导入导出虚拟机 准备 虚拟机设置 采用hyper-v方式安装ubuntu-20虚拟机和koolshare hostnameiph01192.168.66.20h02192.168.66.21h03192.168.66.22 静态IP 所有机器都需要按需设置 sudo vim /e…...

备忘录模式——撤销功能的实现

1、简介 1.1、概述 备忘录模式提供了一种状态恢复的实现机制&#xff0c;使得用户可以方便地回到一个特定的历史步骤。当新的状态无效或者存在问题时&#xff0c;可以使用暂时存储起来的备忘录将状态复原。当前很多软件都提供了撤销&#xff08;Undo&#xff09;操作&#xf…...

Golang 函数参数的传递方式 值传递,引用传递

基本介绍 我们在讲解函数注意事项和使用细节时&#xff0c;已经讲过值类型和引用类型了&#xff0c;这里我们再系统总结一下&#xff0c;因为这是重难点&#xff0c;值类型参数默认就是值传递&#xff0c;而引用类型参数默认就是引用传递。 两种传递方式&#xff08;函数默认都…...

K8s影响Pod调度和Deployment

5.应用升级回滚和弹性伸缩...

透明代理和不透明代理

透明代理和不透明代理 1、透明代理(Transparent Proxy)2、不透明代理(Non-Transparent Proxy)3、工作原理4、透明代理为啥比不透明代理多一部先连接到路由再到代理服务器?5、这里路由器做了什么工作6、代理自动配置文件(Proxy Auto-Configuration file,PAC file)7、代理…...

1424. 对角线遍历 II;2369. 检查数组是否存在有效划分;1129. 颜色交替的最短路径

1424. 对角线遍历 II 核心思想&#xff1a;我感觉是一个技巧题&#xff0c;如果想到很容易做出了&#xff0c;想不到就很难了。首先对于一条对角线的数&#xff0c;其坐标ij是一样的&#xff0c;然后同一条对角线斜向上的j是从小到大的&#xff0c;知道这个就很容易做出来了。…...

【漏洞复现】Metabase 远程命令执行漏洞(CVE-2023-38646)

文章目录 前言声明一、漏洞介绍二、影响版本三、漏洞原理四、漏洞复现五、修复建议 前言 Metabase 0.46.6.1之前版本和Metabase Enterprise 1.46.6.1之前版本存在安全漏洞&#xff0c;未经身份认证的远程攻击者利用该漏洞可以在服务器上以运行 Metabase 服务器的权限执行任意命…...

Linux 9的repo for OVS build

源码中自带RPM包spec文件 cd /root/rpmbuild/SOURCES/openvswitch-2.17.7/rhel rpmbuild -bb openvswitch.spec ## 按提示解决&#xff0c;不好解决的依赖可以试试下面的repo 方法 error: File /root/rpmbuild/SOURCES/openvswitch-2.17.7.tar.gz: No such file or direct…...

DOCTYPE 是什么作用?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ DOCTYPE 是什么作用&#xff1f;⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感兴…...

KubeSphere 3.4.0 发布:支持 K8s v1.26

2023 年 07 月 26 日&#xff0c;KubeSphere 开源社区激动地向大家宣布&#xff0c;KubeSphere 3.4.0 正式发布&#xff01; 让我们先简单回顾下之前三个大版本的主要变化&#xff1a; KubeSphere 3.1.0 新增了“边缘计算”、“计量计费” 等功能&#xff0c;将 Kubernetes 从…...

自然语言文本分类模型代码

以下是一个基于PyTorch的文本分类模型的示例代码&#xff0c;用于将给定的文本分为多个预定义类别&#xff1a; import torch import torch.nn as nn import torch.nn.functional as Fclass TextClassifier(nn.Module):def __init__(self, vocab_size, embedding_dim, hidden_…...

Prometheus实现系统监控报警邮件

Prometheus实现系统监控报警邮件 简介 Prometheus将数据采集和报警分成了两个模块。报警规则配置在Prometheus Servers上&#xff0c; 然后发送报警信息到AlertManger&#xff0c;然后我们的AlertManager就来管理这些报警信息&#xff0c;聚合报警信息过后通过email、PagerDu…...

could not import go.etcd.io/etcd/clientv3-go

问题描述 今天在封装etcd的时候导包报错: could not import go.etcd.io/etcd/clientv3 (no required module provides package "go.etcd.io/etcd/clientv3") 问题解决: get:确保下载了client包 go get go.etcd.io/etcd/client tidy go mod tidy 本文由 mdnice 多平台…...

MySQL的行锁、表锁触发

MySQL的行锁、表锁触发 sql CREATE TABLE products ( product_id INT PRIMARY KEY, product_name VARCHAR(50), stock INT ); INSERT INTO products (product_id, product_name, stock) VALUES (1001, ‘商品A’, 50), (1002, ‘商品B’, 30), (1003, ‘商品C’, 20); 一、行锁…...

mysql-入门笔记-3

# ----------排序查询-------- # 语法 # select 字段列表 from 表名 order by 字段1 排序方式1 ,字段2 排序方式2 ; DESC 降序 ASC升序 # 1 根据年龄对公司的员工进行升序排序---默认升序-黄色提示代码冗余 select * from userTable order by age ASC ; # 2 根据入职时间,对员…...

3分钟创建超实用的中小学新生录取查询系统,现在可以实现了

在新学期开始之际&#xff0c;作为招生负责人&#xff0c;您是否已经做好准备来迎接新学年的招生工作呢&#xff1f;录取新生所需的任务包括录入成绩信息、核对招生要求以及公布新生录取信息等&#xff0c;这些工作繁重而具有挑战性&#xff0c;给负责招生的老师带来了巨大的压…...

Redis 变慢了 解决方案

一、Redis为什么变慢了 1.Redis真的变慢了吗&#xff1f; 对 Redis 进行基准性能测试 例如&#xff0c;我的机器配置比较低&#xff0c;当延迟为 2ms 时&#xff0c;我就认为 Redis 变慢了&#xff0c;但是如果你的硬件配置比较高&#xff0c;那么在你的运行环境下&#xff…...

远程仓库的操作

一、远程仓库的操作命令 git remote # 查看当前项目关联的远程库 我事先关联了一个GitHub的远程仓库&#xff0c;关于如何关联远程仓库&#xff0c;可以看这篇文章远程仓库GitHub和Gitee_林涧泣的博客-CSDN博客 git remote add [仓库服务器名] [远程仓库地址] # 关联远程仓库…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...