笔试强训48天——day19

news2024/11/24 17:43:33

文章目录

  • 一. 单选
    • 1.二分查找的时间复杂度()
    • 2. 有一个单向链表中有一个A、B两个相邻元素,有一个指针p指向元素A,现将一个指针r指向的S元素要插入
    • 3. 双向链表中有两个指针域,llink和rlink分别指向前驱和后继,设p指向链表中的一个结点,现要求删去p所指结
    • 4.一个栈的入栈序列是A,B,C,D,E,则栈的不可能输出序列是()
    • 5.循环队列放在一维数组A[0…M-1]中,end1指向队头元素,end2指向队尾元素的后一个位置。假设队列两端
    • 6. 已知二叉树后序遍历序列是bfegcda,中序遍历序列是badefcg,它的前序遍历序列是()
    • 7.某二叉树共有 399 个结点,其中有 199 个度为 2 的结点,则该二叉树中的叶子结点数为()
    • 8. 以下序列不是堆的是()
    • 10. 以下哪种排序是不稳定排序()
  • 二. 编程
    • 1.汽水瓶
    • 2. 查找两个字符串a,b中的最长公共子串

一. 单选

1.二分查找的时间复杂度()

A O(N*log(N))
B O(N)
C O(log(N))
D O(N^2)

正确答案:C

前提:数据有序
2^n = x 对数间

 

2. 有一个单向链表中有一个A、B两个相邻元素,有一个指针p指向元素A,现将一个指针r指向的S元素要插入

到A和B之间,该进行操作()
A p->next=p->next->next——删除
B r-next=p;p->next=r->next——p之前插入
C r->next=p->next;p->next=r
D r=p->next;->next=r->next
E r->next=p;p->next=r
F p=p->next->next

正确答案:C

 

3. 双向链表中有两个指针域,llink和rlink分别指向前驱和后继,设p指向链表中的一个结点,现要求删去p所指结

点,则正确的删除是()(链中结点数大于2,p不是第一个结点)
A p->llink->rlink:=p->llink; p->llink->rlink:=p->rlink; dispose§;
B dispose§; p->llink->rlink:=p->llink; p->llink->rlink:=p->rlink;
C p->link->rlink:=p->llink; dispose§; p->llink->rlink:=p->rlink;
D 以上A,B,C都不对

正确答案:D

根据题意,排除修改头指针的情况
p->rlink->llink = p->llink;
p->llink->elink = p->rlink;
之后再释放指针,delete(p)

 

4.一个栈的入栈序列是A,B,C,D,E,则栈的不可能输出序列是()

A EDCBA
B DECBA
C DCEAB——只能是BA
D ABCDE

正确答案:C

 

5.循环队列放在一维数组A[0…M-1]中,end1指向队头元素,end2指向队尾元素的后一个位置。假设队列两端

均可进行入队和出队操作,队列中最多能容纳M-1个元素。初始时为空,下列判断队空和队满的条件中,正
确的是()

A 队空:end1end2;队满:end1(end2+1) mod M
B 队空:end1end2;队满:end2(end1+1) mod (M-1)
C 队空:end2==(end1+1) mod M;队满:end1==(end2+1) mod M
D 队空:end1==(end2+1) mod M;队满:end2==(end1+1) mod (M-1)
正确答案:A

mod取模

 

6. 已知二叉树后序遍历序列是bfegcda,中序遍历序列是badefcg,它的前序遍历序列是()

A abcdefg
B abdcefg
C adbcfeg
D abecdfg

正确答案:B

做这种题目是有技巧的,无论是前序和中序,还是后序和中序
区别就是:前序找第一个为根结点,后序找最后一个为根结点,中序用来划分左右子树
找到根结点之后去中序中观察顺序,在跟结点左边的就是左子树,在根节点右边的就是右子树

后序遍历序列是bfegcda:a是根
中序遍历序列是badefcg
在中序遍历中找到a,只有b在a的右边证明a的左子树只有b一个结点
中:defcg 前:fegcd——d为根结点 ——efcg全是右子树
中:efcg 前:fegc—c为根结点——ef是左子树,g是右子树
中:ef 前:fe——e为根结点——f为右子树
在这里插入图片描述
前序:根 左子树 右子树
abdcefg

 

7.某二叉树共有 399 个结点,其中有 199 个度为 2 的结点,则该二叉树中的叶子结点数为()

A 不存在这样的二叉树
B 200
C 198
D 199

正确答案:B

二叉树的性质:对任何一棵二叉树, 如果度为0其叶结点个数为n0 , 度为2的分支结点个数为 n2,则有 n0=n2 +1
度为0的比度为2的永远多一个(任何二叉树都满足)
199+1

 

8. 以下序列不是堆的是()

A (100,85,98,77,80,60,82,40,20,10,66)
B (100,98,85,82,80,77,66,60,40,20,10)
C (10,20,40,60,66,77,80,82,85,98,100)
D (100,85,40,77,80,60,66,98,82,10,20)
正确答案:D

将每一个构造出来看看是否满足堆的构造
大堆:都小于根结点
小堆:都大于根结点

 

  1. 设有一组记录的关键字为{19,14,23,1,68,20,84,27,55,11,10,79},用链地址法构造哈希表,哈希函数为
    H(key)=key MOD 13,哈希地址为1的链中有()个记录
    A 1
    B 2
    C 3
    D 4

正确答案:D

key%13 == 1
14 1 27 79

 

10. 以下哪种排序是不稳定排序()

A 冒泡
B 插入排序
C 归并排序
D 快速排序
正确答案:D

排序效率好的——不稳定

 
 

二. 编程

1.汽水瓶

链接

某商店规定:三个空汽水瓶可以换一瓶汽水,允许向老板借空汽水瓶(但是必须要归还)。
小张手上有n个空汽水瓶,她想知道自己最多可以喝到多少瓶汽水。

数据范围:输入的正整数满足
注意:本题存在多组输入。输入的 0 表示输入结束,并不用输出结果。

输入描述:
输入文件最多包含 10 组测试数据,每个数据占一行,仅包含一个正整数 n( 1<=n<=100 ),表示小张手
上的空汽水瓶数。n=0 表示输入结束,你的程序不应当处理这一行。
输出描述:
对于每组测试数据,输出一行,表示最多可以喝的汽水瓶数。如果一瓶也喝不到,输出0。

示例1:
输入
3 1
0
81
0
输出
15
40
说明
样例 1 解释:用三个空瓶换一瓶汽水,剩一个空瓶无法继续交换
样例 2 解释:用九个空瓶换三瓶汽水,剩四个空瓶再用三个空瓶换一瓶汽水,剩两个空瓶,向老板借一个空
瓶再用三个空瓶换一瓶汽水喝完得一个空瓶还给老板

正确答案:

#include<iostream>
using namespace std;

//概念法
int calcNumber_1(int n)
{
int sum = 0;
while(n > 1)
{
int res = n / 3; //所能兑换的个数
int left = n % 3; //遗下的个数
sum += res;
n = left + res;
if(n == 2)
{
sum++;
break;
}
} r
eturn sum;
}

//取巧法
int calcNumber_2(int n)
{
return n / 2;
}

int main()
{
    int n,res;
    while(cin>>n)
    {
        if(n == 0)
        break;   
        res =  calcNumber_1(n);
        cout<<res<<endl;
    }
    return 0;
}

 

2. 查找两个字符串a,b中的最长公共子串

链接

查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。
注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分
开!

数据范围:字符串长度

输入描述:
输入两个字符串
输出描述:
返回重复出现的字符

示例1:
输入
abcdefghijklmnop
abcsafjklmnopqrstuvw
输出
jklmnop

正确答案:

#include<iostream>
#include<string>
#include<vector>
using namespace std;

string Getstr(string &s1,string &s2)
{
    if(s1.size()>s2.size())
    swap(s1,s2);
    
    int l1 = s1.size();
    int l2 = s2.size();
    
    vector<vector<int>> a(l1+1,vector<int>(l2+1,0));
    
    int start = 0,max = 0;
    
    for(int i = 1;i<=l1;i++)
    {
        for(int j = 1;j<=l2;j++)
        {
            if(s2[j-1] == s1[i-1])
            a[i][j] = a[i-1][j-1]+1;
            
                    if(a[i][j]>max)
                    {
                        max = a[i][j];
                        start = i-max;                    
                    }        
        }    
    }
    return s1.substr(start,max);
}

int main()
{
    string s1,s2;
    while(cin>>s1>>s2)
    {
        string substr = Getstr(s1,s2);
        cout<<substr<<endl;    
    }
    return 0;
}

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

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

相关文章

spark底层原理理解--高级进阶

概念概念理解和解释备注窄依赖窄依赖指1个父RDD分区数据只被1个子RDD的分区使用&#xff0c;即一对一或多对一的关系。 分为两种映射情况&#xff1a;一个父RDD的分区对应于一个子RDD的分区&#xff0c;或者多个父RDD的分区对应于一个子RDD的分区。 1个子RDD的分区对应于1个父R…

深入理解JS作用域链与执行上下文

变量提升&#xff1a; 变量提升&#xff08; hoisting &#xff09;。 我可恨的 var 关键字&#xff1a; 你读完下面内容就会明白标题的含义&#xff0c;先来一段超级简单的代码&#xff1a; <script type"text/javascript">var str Hello JavaScript hoi…

【K8S】初探Kubernetes

文章目录什么是容器编排什么是KubernetesK8s 和 Docker 之间的关系Kubernetes的整体架构Master 里的组件构成Work Node 里的组件构成总结K8s 组件工作流程结束语什么是容器编排 在《Docker 进阶指南&#xff08;下&#xff09;- 使用Docker Compose编排多个容器》文章当中&…

文件缓冲区

本期介绍&#x1f356; 主要介绍&#xff1a;什么是文件缓冲区&#xff0c;文件缓冲区存在的意义是什么&#xff0c;文件缓冲区的证明&#x1f440;。 一、什么是文件缓冲区 每一个正在使用的文件&#xff0c;操作系统都会为其在内存中开辟一块区域&#xff0c;称之为&#xff…

【数据结构】带头双向链表的简单实现

目录前言链表的实现List.hList.c**ListCreate()****LTInit()****ListPushBack()****ListPopBack()****ListPrint()****ListPushFront()****ListPopFront()****ListFind()****ListInsert()****ListErase()**ListErase()test.c前言 该篇博客主要讲解了带头双向链表的实现和一些细…

Cadence Allegro DXF结构图的导入详细教程

很多消费类板卡的结构都是异形的&#xff0c;由专业的CAD结构工程师对其进行精准的设计&#xff0c;PCB布线工程师可以根据结构工程师提供的2D图&#xff08;DWG或DXF格式&#xff09;进行精准的导入操作&#xff0c;在PCB中定义板型结构。 同时&#xff0c;对于一些工控板或者…

Ajax--跨域与JSONP--案例-淘宝搜索

要实现的UI效果 获取用户输入的搜索关键词 为了获取到用户每次按下键盘输入的内容&#xff0c;需要监听输入框的 keyup 事件&#xff0c;示例代码如下&#xff1a; // 监听文本框的 keyup 事件$(#ipt).on(keyup, function() {// 获取用户输入的内容var keywords $(this).val…

支撑向量机

1、支持向量机算法原理 支持向量机&#xff08;Support Vetor Machine&#xff0c;SVM&#xff09;由Vapnik等人于1995年首先提出&#xff0c;在解决小样本、非线性及高维模式识别中表现出许多特有的优势&#xff0c;并推广到人脸识别、行人检测和文本分类等其他机器学习问题中…

HTML期末作业:基于html+css+javascript+jquery实现古诗词网页 学生网页设计作品 web前端开发技术 web课程设计 网页规划与设计

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

初学C语言有什么建议?

什么&#xff1f;开玩笑&#xff0c;新手学C语言&#xff1f; 确实新手不学C语言学什么呢&#xff1f;为什么这么推荐新手学C语言呢具体看看下面的解释吧&#xff1f; C的重要性 我总结了网上很多人的说法如下&#xff1a; C语言是计算机界公认的有史以来最重要的语言。C语…

R语言偏相关和典型相关

本文首发于公众号&#xff1a;医学和生信笔记&#xff0c;完美观看体验请至公众号查看本文。 文章目录偏相关&#xff08;partial correlation&#xff09;偏相关散点图典型相关&#xff08;Canonical Correlation&#xff09;使用R语言实现偏相关分析和典型相关分析&#xff0…

一个对C#程序混淆加密,小巧但够用的小工具

对于我们程序员来说&#xff0c;平常开发的桌面应用程序&#xff0c;如果不进行一定程度的加密、混淆&#xff0c;是很容易通过反编译手段进行破解的&#xff0c;特别是一些商业用途的C#软件&#xff0c;更是容易被破解。 所以今天给大家推荐一个对C#程序加密混淆项目&#xf…

脱离CRUD苦海 !性能优化全栈小册来了!

性能优化 随着互联网的高速发展&#xff0c;互联网行业已经从IT时代慢慢步入到DT时代。对于Java程序员的要求越来越高&#xff0c;只是单纯的掌握CRUD以不足以胜任互联网公司的相关职位&#xff0c;大量招聘岗位显示&#xff1a;如果是面试中高级的Java岗&#xff0c;基本上都…

flex1时内容溢出

目标效果&#xff1a;右边黄色部分填充减去红色部分的剩余部分 原理: flex: 1 代码&#xff1a; <div class"box"><div class"inner-left"></div><div class"inner-right"><span class"inner-right-content&…

RK3568平台开发系列讲解(NPU篇)让 NPU 跑起来

🚀返回专栏总目录 文章目录 一、在 Android 系统中使用 NPU1.1、下载编译所需工具1.2、修改编译工具路径1.3、更新 RKNN 模型1.4、编译 demo沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍如何让NPU跑起来。 一、在 Android 系统中使用 NPU 下载 rknpu2 …

Hadoop的eclipse搭建(客观莫划走,留下来看一眼(适用人群学生初学,其他人看看就行))

前言&#xff1a;Hadoop的eclipse搭建是建立在Hadoop的安装之后进行的&#xff0c;因为Linux上的Hadoop和Windows上的Hadoop版本要求一致&#xff0c;不一致可能会出现某些问题 准备工作&#xff1a;Java的安装包、eclipse的安装包、Hadoop的包&#xff08;Windows的Hadoop安装…

基于Socket编程下 实现Linux-Linux、Linux-Windows udp通信

文章目录一、通信实现二、Linux-Linux1. 服务器 Server2. 客户端 Client三、Linux-Windows1. 服务器 Linux_Server2. 客户端 Windows_Client程序源码一、通信实现 1. Linux-Linux 在虚拟机下开启俩个终端&#xff0c;分别运行服务器和客户端程序(服务器运行在前&#xff0c;客…

栈的简单实现及应用

栈的简单实现及其应用什么是栈&#xff1f;栈的分类栈的数据结构栈的基本操作栈的初始化栈的销毁入栈操作出栈和栈空的判断获取栈顶元素获取栈的元素个数头文件总结栈的应用什么是栈&#xff1f; 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除…

【毕业设计】垃圾邮件(短信)分类算法研究与实现 - 机器学习

文章目录1 前言2 垃圾短信/邮件 分类算法 原理2.1 常用的分类器 - 贝叶斯分类器3 数据集介绍4 数据预处理5 特征提取6 训练分类器7 综合测试结果8 其他模型方法9 最后1 前言 &#x1f525; Hi&#xff0c;大家好&#xff0c;这里是丹成学长的毕设系列文章&#xff01; &#…

Vue面试题-答案、例子

1、Vue的生命周期 每一个vue实例从创建到销毁的过程&#xff0c;就是这个vue实例的生命周期。在这个过程中&#xff0c;他经历了从开始创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、卸载等一系列过程。 将要创建 >调用beforeCreate函数 创建完毕 >调用creat…