备战秋招 | 笔试强训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.hqwc.cn/news/54239.html

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

相关文章

scanf函数读取数据 清空缓冲区

scanf函数读取数据&清空缓冲区 scanf 从输入缓冲区读取数据数据的接收数据存入缓冲区scanf 中%d读取数据scanf中%c读取数据 清空输入缓冲区例子用getchar()吸收回车练习 scanf 从输入缓冲区读取数据 首先&#xff0c;要清楚的是&#xff0c;scanf在读取数据的时候&#xff…

uniapp:图片验证码检验问题处理

图形验证码功能实现 uniapp&#xff1a;解决图形验证码问题及利用arraybuffer二进制转base64格式图片&#xff08;后端传的图片数据形式&#xff1a;x00\x10JFIF\x00\x01\x02\x00…&#xff09;_❆VE❆的博客-CSDN博客 UI稿&#xff1a; 需求&#xff1a;向后端请求验证码图片&…

HttpServletRequest和HttpServletResponse的获取与使用

相关笔记&#xff1a;【JavaWeb之Servlet】 文章目录 1、Servlet复习2、HttpServletRequest的使用3、HttpServletResponse的使用4、获取HttpServletRequest和HttpServletResponse 1、Servlet复习 Servlet是JavaWeb的三大组件之一&#xff1a; ServletFilter 过滤器Listener 监…

深度学习(35)—— StarGAN(2)

深度学习&#xff08;34&#xff09;—— StarGAN&#xff08;2&#xff09; 完整项目在这里&#xff1a;欢迎造访 文章目录 深度学习&#xff08;34&#xff09;—— StarGAN&#xff08;2&#xff09;1. build model&#xff08;1&#xff09;generator&#xff08;2&#…

react中hooks的理解与使用

一、作用 我们知道react组件有两种写法一种是类组件&#xff0c;另一种是函数组件。而函数组件是无状态组件&#xff0c;如果我们要想改变组件中的状态就无法实现了。为此&#xff0c;在react16.8版本后官方推出hooks&#xff0c;用于函数组件更改状态。 二、常用API 1、use…

解决运行flutter doctor --android-licenses时报错

问题描述&#xff1a; 配置flutter环境时&#xff0c;会使用flutter doctor命令来检查运行flutter的相关依赖是否配好。能看到还差 Android license status unknown.未解决。 C:\Users\ipkiss.wu>flutter doctor Flutter assets will be downloaded from https://storage.…

pygame贪吃蛇游戏

pygame贪吃蛇游戏 贪吃蛇游戏通过enter键启动&#xff0c;贪吃蛇通过WSAD进行上下左右移动&#xff0c;每次在游戏区域中随机生成一个食物&#xff0c;每次吃完食物后&#xff0c;蛇变长并且获得积分&#xff1b;按空格键暂停。 贪吃蛇 import random, sys, time, pygame from …

eclipse was unable to locate its companion shared library

当转移或者Copy工程时&#xff0c; eclipse was unable to locate its companion shared library eclipse.ini 里面的路径配置错误导致 --launcher.library C:/Users/**/.p2/pool/plugins/org.eclipse.equinox. launcher.win32.win32.x86_64_1.2.700.v20221108-1024 -product …

【云原生】K8S二进制搭建三:高可用配置

目录 一、部署CoreDNS二、配置高可用三、配置负载均衡四、部署 Dashboard 一、部署CoreDNS 在所有 node 节点上操作 #上传 coredns.tar 到 /opt 目录中 cd /opt docker load -i coredns.tar在 master01 节点上操作 #上传 coredns.yaml 文件到 /opt/k8s 目录中&#xff0c;部…

孤立随机森林(Isolation Forest)(Python实现)

目录 1 简介 2 孤立随机森林算法 2.1 算法概述 2.2 原理介绍 2.3 算法步骤 3 参数讲解 4 Python代码实现 5 结果 1 简介 孤立森林&#xff08;isolation Forest&#xff09;是一种高效的异常检测算法&#xff0c;它和随机森林类似&#xff0c;但每次选择划分属性和划分…

DASCTF 2023 0X401七月暑期挑战赛 Web方向 EzFlask ez_cms MyPicDisk 详细题解wp

EzFlask 源码直接给了 CtrlU查看带缩进的源码 import uuidfrom flask import Flask, request, session # 导入黑名单列表 from secret import black_list import jsonapp Flask(__name__) # 为 Flask 应用设置一个随机的 secret_key app.secret_key str(uuid.uuid4())# 检查…

OpenAI 已为 GPT-5 申请商标,GPT-4 发布不到半年,GPT-5 就要来了吗?

据美国专利商标局&#xff08;USPTO&#xff09;信息显示&#xff0c;OpenAI已经在7月18日申请注册了“GPT-5”商标。 在这份新商标申请中&#xff0c;OpenAI将“GPT-5”描述为一种“用于使用语言模型的可下载计算机软件”。 继GPT-4发布之后&#xff0c;它预计将成为OpenAI下一…