备战秋招 | 笔试强训24

目录

一、选择题

二、编程题

三、选择题题解

四、编程题题解


一、选择题

1、请指出选择排序,冒泡排序,快速排序的时间复杂度分别是()

A. O(n^2)、O(n^2)、O(n*log2n)

B. O(n*log2n)、、O(n^2)、O(n*log2n)

C. O(n)、O(n^2)、O(n^2)

D. O(n*log2n)、O(n^2)、O(n^2)

2、在单链表中,增加头结点的目的是()

A. 标识表结点中首结点的位置

B. 算法实现上的方便

C. 使单链表至少有一个结点

D. 说明单链表是线性表的链式存储实现

3、下列算法的功能是什么?

/*L是无头节点单链表*/
LinkList Demo(LinkList L)
{ListNode *Q,*P;if(L&&L->next){Q=L;    L=L->next;P=L;while(P->next)P=P->next;p->next=Q;}return L;
}

A. 遍历链表

B. 链表深拷贝

C. 链表反转

D. 单链表转变为循环链表

4、表达式3*2^(4+2*2-6*3)-5求值过程中当扫描到6时,对象栈和运算符栈为(),其中^为乘幂

A. 3,2,4,1,1;(*^(+*-

B. 3,2,8;(*^-

C. 3,2,4,2,2;(*^(-

D. 3,2,8;*^(-

5、假设以数组A[60]存放循环队列的元素,其头指针是front=47,当前队列有50个元素,则队列的尾指针值为()

A. 3

B. 37

C. 97

D. 50

6、一棵完全二叉树第六层有9个叶结点(根为第一层),则结点个数最多有()

A. 112

B. 111

C. 107

D. 109

7、有权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为()

A. 24

B. 71

C. 48

D. 53

8、已知小根堆为8,15,10,21,34,16,12,删除关键字8之后需重建堆,最后的叶子节点为()

A. 34

B. 21

C. 16

D. 12

9、将10个元素散列到100000个单元的哈希表中,则()产生冲突

A. 一定会

B. 一定不会

C. 仍可能会

10、下列排序算法中,元素的移动次数与关键字的初始排列次序无关的是 () 。

A. 直接插入排序

B. 起泡排序

C. 基数排序

D. 快速排序

二、编程题

1、年终奖    题目链接

2、迷宫问题    题目链接

三、选择题题解

1、请指出选择排序,冒泡排序,快速排序的时间复杂度分别是()

A. O(n^2)、O(n^2)、O(n*log2n)

B. O(n*log2n)、、O(n^2)、O(n*log2n)

C. O(n)、O(n^2)、O(n^2)

D. O(n*log2n)、O(n^2)、O(n^2)

正确答案:A

题解:

        基础题; 

2、在单链表中,增加头结点的目的是()

A. 标识表结点中首结点的位置

B. 算法实现上的方便

C. 使单链表至少有一个结点

D. 说明单链表是线性表的链式存储实现

正确答案:B

题解:

        带头以后,在实现插入与删除等算法时会方便的多; 

3、下列算法的功能是什么?

/*L是无头节点单链表*/
LinkList Demo(LinkList L)
{ListNode *Q,*P;if(L&&L->next){Q=L;    L=L->next;P=L;while(P->next)P=P->next;p->next=Q;}return L;
}

A. 遍历链表

B. 链表深拷贝

C. 链表反转

D. 单链表转变为循环链表

正确答案:D

题解:

        我们发现Q存的是第一个结点的位置,while循环是找最后一个结点,并存入P中,最后将P的next指向Q完成首尾相连;

4、表达式3*2^(4+2*2-6*3)-5求值过程中当扫描到6时,对象栈和运算符栈为(),其中^为乘幂

A. 3,2,4,1,1;(*^(+*-

B. 3,2,8;(*^-

C. 3,2,4,2,2;(*^(-

D. 3,2,8;*^(-

正确答案:D

题解:

         此题考察利用栈将中缀表达式转后缀表达式,具体规则是分别使用两个栈,一个为数据栈,一个为运算符栈,遍历中缀表达式,遇到数字则将数字入数据栈,遇到运算符有三种情况,若运算符栈为空,则入栈;若运算符栈不为空且当前运算符大于栈顶运算符,则直接入栈,若运算符栈不为空且当前运算符小于等于运算符栈顶符号,则取出数据栈顶两个数据用运算符栈顶的运算符进行计算,然后将结果继续入栈;

5、假设以数组A[60]存放循环队列的元素,其头指针是front=47,当前队列有50个元素,则队列的尾指针值为()

A. 3

B. 37

C. 97

D. 50

正确答案:B

题解:

         (47 + 50) % 60 = 37;

6、一棵完全二叉树第六层有9个叶结点(根为第一层),则结点个数最多有()

A. 112

B. 111

C. 107

D. 109

正确答案:D

题解:

         首先我们要清楚二叉树的两个特性,第 n 层的结点个数2^(n - 1),满二叉树 n 层结点的总数为2^n - 1;我们首先算出第6层结点个数2^(6 - 1) = 32;而第六层只有9个结点,因此必然存在第七层;我们算出7层总共结点数位2^7 - 1 = 128;然后减去9 * 2;就是完全二叉树的最多节点个数;

7、有权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为()

A. 24

B. 71

C. 48

D. 53

正确答案:B

题解:

         我们首先要会画出我们的哈夫曼树,画出如下图所示;

 

8、已知小根堆为8,15,10,21,34,16,12,删除关键字8之后需重建堆,最后的叶子节点为()

A. 34

B. 21

C. 16

D. 12

正确答案:C

题解:

         具体过程如下图所示;

 

9、将10个元素散列到100000个单元的哈希表中,则()产生冲突

A. 一定会

B. 一定不会

C. 仍可能会

正确答案:C

题解:

         哈希函数只能尽量减少冲突,无法避免冲突;

10、下列排序算法中,元素的移动次数与关键字的初始排列次序无关的是 () 。

A. 直接插入排序

B. 起泡排序

C. 基数排序

D. 快速排序

正确答案:C

题解:

         基数排序元素移动次数与其实次序无关,只与即最大数据的权重位数有关;

四、编程题题解

1、年终奖

思路:采用动态规划的思路,我们定义dp[i][j]为以 i 行 j 列结尾的位置最大价值;不难推出该最大价值为dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]) + 当前格子价值;

class Bonus 
{
public:int getMost(vector<vector<int> > board) {int m = board.size();int n = board[0].size();vector<vector<int>> dp(m + 1, vector<int>(n + 1, 0));for(int i = 1; i <= m; i++)for(int j = 1; j <= n; j++)dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]) + board[i - 1][j - 1];return dp[m][n];}
};

2、迷宫问题

思路:经典的一道DFS题目,我们标记每个位置是否走过,到终点时记录并更新最短路径;

#include <iostream>
#include <type_traits>
#include <vector>
using namespace std;vector<vector<int>> maze, curpath, bestpath;
vector<vector<bool>> is_arrive;
int row, col;void get_road(int x, int y)
{is_arrive[x][y] = true;curpath.push_back({x, y});// 到达终点if(x == row - 1 && y == col - 1){if(bestpath.empty())bestpath = curpath;elseif(curpath.size() < bestpath.size())bestpath = curpath;}// 开始移动探测 右、下、左、上if(y + 1 < col && is_arrive[x][y + 1] == false && maze[x][y + 1] == 0)get_road(x, y + 1);if(x + 1 < row && is_arrive[x + 1][y] == false && maze[x  + 1][y] == 0)get_road(x + 1, y);if(y - 1 >= 0 && is_arrive[x][y - 1] == false && maze[x][y - 1] == 0)get_road(x, y - 1);if(x - 1 >= 0 && is_arrive[x - 1][y] == false && maze[x - 1][y] == 0)get_road(x - 1, y);// 回溯is_arrive[x][y] = false;curpath.pop_back();
}int main()
{cin >> row >> col;// 初始化maze.resize(row, vector<int>(col, 0));is_arrive.resize(row, vector<bool>(col, false));for(int i = 0; i < row; i++)for(int j = 0; j < col; j++)cin >> maze[i][j];get_road(0, 0);for(int i = 0; i < bestpath.size(); i++)cout << "(" << bestpath[i][0] << "," << bestpath[i][1] << ")" << endl;return 0;
}

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

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

相关文章

[虚幻引擎 MongoDB Client 插件说明] DTMongoDB MongoDB数据库连接插件,UE蓝图可以操作MongoDB数据库增删改查。

本插件可以在UE里面使用蓝图操作MongoDB数据库&#xff0c; 对数据库进行查询&#xff0c;删除&#xff0c;插入&#xff0c;替换&#xff0c;更新操作。插件下载地址在文章最后。 1. 节点说明 DT MongoDB | Client Create MongoDB Client - 创建客户端对象 创建一个 MongoDB 客…

【ONE·Linux || 基础IO(二)】

总言 文件系统与动静态库相关介绍。 文章目录 总言2、文件系统2.1、背景知识2.2、磁盘管理2.2.1、磁盘文件系统图2.2.2、inode与文件名 2.3、软硬链接 3、动静态库3.1、站在编写库的人的角度&#xff1a;如何写一个库&#xff1f;3.1.1、静态库制作3.1.3、动态库制作 3.2、站在…

AI编程工具Copilot与Codeium的实测对比

csdn原创谢绝转载 简介 现在没有AI编程工具&#xff0c;效率会打一个折扣&#xff0c;如果还没有&#xff0c;赶紧装起来&#xff0e; GitHub Copilot是OpenAi与github等共同开发的的AI辅助编程工具&#xff0c;基于ChatGPT驱动&#xff0c;功能强大&#xff0c;这个没人怀疑…

java Selenium 实现简单的网页操作

官方文档&#xff1a;入门指南 | Selenium Selenium是一个用于Web应用测试的工具。Selenium测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样。 所以使用这个前端测试话工具&#xff0c;可以自动化做很多事情&#xff0c;比如自动化抓取网页内容&#xff0c;俗称网…

服务器中了360后缀勒索病毒怎么解决,360后缀勒索病毒解密数据恢复

某医药公司是一家小型企业&#xff0c;拥有自己的服务器存储重要数据和文件。某天早上&#xff0c;IT管理员发现企业服务器中了360后缀的勒索病毒&#xff0c;所有数据文件都被加密了。这个病毒的入侵让公司业务受到严重影响&#xff0c;企业立即启动了勒索病毒解密数据恢复的措…

MySQL为什么要使用 B+Tree 作为索引结构?

MySQL为什么要使用 BTree 作为索引结构&#xff1f; 基本情况 常规的数据库存储引擎 &#xff0c;一般都是采用 B 树或者 B树来实现索引的存储。B树是一种多路平衡树&#xff0c;用这种存储结构来存储大量数据&#xff0c;它的整个高度 会相比二叉树来说 &#xff0c;会矮很多…

机器学习笔记 - YOLO-NAS 最高效的目标检测算法之一

一、YOLO-NAS概述 YOLO(You Only Look Once)是一种对象检测算法,它使用深度神经网络模型,特别是卷积神经网络,来实时检测和分类对象。该算法首次在 2016 年由 Joseph Redmon、Santosh Divvala、Ross Girshick 和 Ali Farhadi 发表的论文《You Only Look Once: Unified, Re…

Stable Diffusion - Stable Diffusion WebUI 支持 SDXL 1.0 模型的环境配置

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/132056980 SDXL 1.0 版本 是 Stable Diffusion 的最新版本&#xff0c;是基于潜在扩散模型的文本到图像生成技术&#xff0c;能够根据输入的任何文…

单片机复位电路分析

来分析一下这个电路&#xff1a; 首先这里面有电容&#xff0c;所以是一个动态电路。哈哈哈 假设左上角的电压源是5V的代号为VOLT。 可以知道电容capacitor C1左边的电压也是5V&#xff0c;电容中间隔着一个绝缘体&#xff0c;所以不导电&#xff0c; 这个时候电流无法通过…

利用XSS在线平台获取用户cookie

//XSS弹窗&#xff1a; <script>alert("xss")</script> XSS漏洞&#xff1a; //XSS弹窗&#xff1a; <script>alert("xss")</script> //XSS在线平台&#xff1a; <ScRipT sRc//7ix7kigpovxdbtd32fuspgffmtmufo3wwzgnzaltddewtb…

TS协议之PMT(节目映射表)

TS协议之PAT&#xff08;节目关联表&#xff09; 1.概要 PMT&#xff1a;节目映射表&#xff0c;与PAT成对出现&#xff0c;包含了该节目下所有的节目元素。 PMT数据结构如下&#xff1a; 字段分析&#xff1a; 字段字段描述表id标识一个TS PSI分段的内容是节目关联分段&am…

SAP ABAP中使用函数ALSM_EXCEL_TO_INTERNAL_TABLE读取EXCEL中不同的SHEET数据

SAP提供了标准的读取EXCEL的函数&#xff08;ALSM_EXCEL_TO_INTERNAL_TABLE&#xff09;&#xff0c;但是此标准函数无法满足对同一EXCEL 进行不同SHEET的数据读取&#xff0c;一下方法就是教你如何通过修改程序来实现ALSM_EXCEL_TO_INTERNAL_TABLE读取多个SHEET&#xff1b; …

P1320 压缩技术(续集版)

题目描述 设某汉字由 N N N \times N NN 的 0 \texttt 0 0 和 1 \texttt 1 1 的点阵图案组成。 我们依照以下规则生成压缩码。连续一组数值&#xff1a;从汉字点阵图案的第一行第一个符号开始计算&#xff0c;按书写顺序从左到右&#xff0c;由上至下。第一个数表示连续有…

MacOS上配置docker国内镜像仓库地址

背景 docker官方镜像仓库网速较差&#xff0c;我们需要设置国内镜像服务 我的MacOS docker版本如下 设置docker国内镜像仓库地址 点击Settings点击Docker Engine修改配置文件&#xff0c;添加registry-mirrors {"builder": {"gc": {"defaultKeepS…

Java——如何使用Stream替换掉List<Student>中符合要求的元素

使用Stream替换掉List中符合要求的元素 要使用Stream流替换掉List中符合特定条件的元素&#xff0c;您可以使用Stream的map()方法对每个元素进行映射&#xff0c;并使用collect()方法将映射后的元素收集到一个新的List中。 示例代码&#xff1a; import java.util.ArrayList; …

Java实现数据库表中的七种连接【Mysql】

Java实现数据库表中的七种连接【Mysql】 前言版权推荐Java实现数据库表中的七种连接左外连接右外连接其他连接 附录七种连接SQL测试Java测试转换方法类 Cla1类 Cla2类Cla3 最后 前言 2023-8-4 16:51:42 以下内容源自《【Mysql】》 仅供学习交流使用 版权 禁止其他平台发布时…

docker配置远程连接端口

配置docker 配置远程连接端口 vi /lib/systemd/system/docker.servicesystemctl daemon-reload && systemctl restart docker firewall-cmd --zonepublic --add-port2375/tcp --permanenthttp://node2:2375/version

iOS 两种方式设置状态栏

1、ios9.0以前设置状态栏字体颜色 ///白色 [[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent]; ///黑色 [[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleDefault]; 会看到如下提示&#xff1a; setStatusBarSty…

pycharm——漏斗图

import pyecharts.options as opts from pyecharts.charts import Funnel""" Gallery 使用 pyecharts 1.1.0 参考地址: https://echarts.apache.org/examples/editor.html?cfunnel目前无法实现的功能:1、暂时无法对漏斗图的长宽等范围操作进行修改 ""…

锂电池充电/保护IC :TP4056 1A线性锂离子电池充电器(DW01A /FS8205A)

1. TP4056 概述 TP4056是一款性能优异的单节锂离子电池恒流/恒压线性充电器。TP4056采用ESOP8封装配合较少的外围原件使其非常适用于便携式产品&#xff0c;并且适合给USB电源以及适配器电源供电。 基于特殊的内部MOSFET架构以及防倒充电路&#xff0c;TP4056不需要外接检测电…