【回眸】牛客网刷刷刷(四)软件工程(续)ZooKeeper字符串链表(专题)

news2024/11/24 16:36:48

前言

本篇博客为笔者刷客观笔试题时做的一些记录以供以后复习时翻阅,如果能够帮到您是最大的荣幸!如果能给笔者一个三连将感激不尽!

知识点串烧

软件工程专题(续上篇)

有一些可维护特性是相互促进的,如:可理解性和可测试性可理解性和可修改性
而另一些则是相互矛盾的,如:效率和可移植性效率和可修改性等。 为保证程序的可维护性,应该在一定程度上满足可维护性的各个特性,但各个特性的重要性随着程序用途的不同或计算机环境的不同而不同。例如,对编译程序来说,效率和可移植性是主要的;对信息管理系统来说,可使用性和可修改性可能是主要的。
通过大量实验证明:强调效率的程序包含的错误比强调简明性的程序所包含的错误要高得多。因此明确软件所追求的质量目标对软件的质量和维护费用将产生很大的影响。

ZooKeeper专题

zookeeper=文件系统+通知机制

ZooKeeper服务端包含三种角色:
1、领导者Leader
2、学习者Learner
2.1 跟随者Follower
2.2 观察者Observer

Zookeeper-Stat 结构体成员
czxid 引起这个 znode 创建的 zxid,创建节点的事务的 zxid
ctime znode 被创建的毫秒数(从1970年开始)
mzxid znode 最后更新的 zxid
mtime znode 最后修改的毫秒数(从1970年开始)
pZxid znode 最后更新的子节点 zxid
cversion znode 子节点变化号,znode 子节点修改次数
dataversion znode 数据变化号
aclVersion znode 访问控制列表的变化号
ephemeralOwner 如果是临时节点,这个是 znode 拥有者的 session id。如果不是临时节点则是 0
dataLength znode 的数据长度
numChildren znode 子节点数量

字符串专题

char *string_a = (char *)malloc(100*sizeof(char));
char string_b[100]; 

string_a是一个char型的指针,在64位系统中sizeof(char*)=8
string_b是一个char型的数组,在64位系统中sizeof(char)=1,共100值因此为100

空串与由空格组成的串没有区别,错
空串:a=“没有东西”; 空格串:b=“空格空格”

串是一种特殊的线性表,其特殊性体现在数据元素是一个字符

字符常量存储为int类型(不是char类型),故’#’通常占用2或4字节。但实际上,只使用int的1个字节存储’#’的编码。
字符串”#”使用2个字节来存储:一个字节存储’#’的编码,一个字节存储的’\0’编码

%s:打印字符串时使用的转换说明。
%后加(数字)修饰符:表示打印的最小字段宽度,如%6s。
%后加(.数字)修饰符:对%s转换来说,表示待打印字符的最大数量,如%.3s。
%后加(-)修饰符:表示待打印项左对齐,即从字段的左侧开始打印该项,如%-6s。

char str[10];
cin>>str;
cin遇到空格便会停止读取

指针p指向字符串数组s,其实意味着指针p的地址为字符串数组s的首地址,因此*p的值为字符串数组s的第一个字符的值,即a,字符a+3则为ASCII值相加,因此相加的结果为d。

链表专题

单链表只能访问后继,无法访问前驱,不可以用尾节点循环头节点

往队列的队尾插入一个元素为入队,从队列的排头删除一个元素称为退队。
初始时 front=rear=0 , front 总是指向队头元素的前一位置,入队一次 rear+1 ,退队一次 front+1 。队列队头队尾指针相同时队列为空。而带链的队列,由于每个元素都包含一个指针域指向下一个元素,当带链队列为空时 front=rear=Null ,插入第 1 个元素时, rear+1 指向该元素, front+1 也指向该元素,插入第 2 个元素时 rear+1 , front 不变,删除 1 个元素时 front+1 。即 front=rear 不为空时带链的队列中只有一个元素。

在定义的链表中,若只含有一个指针域来存放下一个元素地址,称这样的链表为单链表或线性链表。带链的栈可以用来收集计算机存储空间中所有空闲的存储结点,是线性表。在单链表中的结点中增加一个指针域指向它的直接前件,这样的链表,就称为双向链表(一个结点中含有两个指针),也是线性链表。循环链表具有单链表的特征,但又不需要增加额外的存贮空间,仅对表的链接方式稍做改变,使得对表的处理更加方便灵活,属于线性链表。二叉链表是二叉树的物理实现,是一种存储结构,不属于线性结构

一个非空的数据结构如果满足以下两个条件:有且只有一个根结点;每一个结点最多有一个前件(前驱),也最多有一个后件(后继),则称为线性结构,在数据结构中习惯称为线性表。双向链表结点具有两个指针域,属于线性结构。
循环链表所有结点的指针域都为非空,属于线性结构
循环链表是链表,循环队列属于队列,队列只能在队尾入队,在排头退队,链表可以在任何位置插入、删除
双向链表结点具有多个指针域,所以线性结构的存储结点也可以有多个指针。

单向不带头结点链表 判空:head==NULL
单向带头结点 head->next=NULL

单向循环不带头结点 head==NULL
单向循环带头结点 head->next=head

线性表可以没有元素,就是为空表的时候,选项B错误。
线性表中元素的排列不必须要顺序排列,选项C错误。
由线性表的基本原理可以知道,除了第一个元素无前驱,最后一个元素无后继,其他所有的元素都有一个直接的前驱和直接的后继。

链表只能顺序查找 定位一个元素的时间为O(N),删除一个元素的时间为O(1)

线性表有两种存储方式,一种是顺序表一种是链式表,只有用顺序表时,逻辑顺序才和物理顺序一致

链表中的结点可含多个指针域,分别存放多个指针。例如,双向链表中的结点可以含有两个指针域,分别存放指向其直接前趋和直接后继结点的指针。

单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置) 其数据元素没有特定的类型限制。

链式存储结构不同于顺序存储结构,它的存储空间可以是不连续的,并且数据节点的存储顺序与数据元素之间的逻辑关系可以不一致,数据元素之间的逻辑关系是由指针域来确定的。 因此采用线性链表表示一个向量时,占用的存储空间地址可连续可不连续。
链式存储结构和顺序存储结构的区别: 顺序存储结构就是用一组地址连续的存储单元依次存储该线性表中的各个元素。由于表中各个元素具有相同的属性,所以占用的存储空间相同。 线性表按链式存储时,每个数据元素 (结点)的存储包括数据区和指针区两个部分。数据区存放结点本身的数据,指针区存放其后继元素的地址只要知道该线性表的起始地址表中的各个元素就可通过其间的链接关系逐步找到。 优缺点比较: 顺序存储需要开辟一个定长的空间,读写速度快,缺点不可扩充容量(如果要扩充需要开辟一个新的足够大的空间把原来的数据重写进去) 链式存储无需担心容量问题,读写速度相对慢些,由于要存储下一个数据的地址所以需要的存储空间比顺序存储大。

线性表的顺序存储结构具备如下两个基本特征:①线性表中的所有元素所占的存储空间是连续的;②线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。用一组任意的存储单元来依次存放线性表的结点,这组存储单元既是可以使连续的,也可以是不连续的,甚至是零散分布在内存中的任意位置上的。

散列表的平均查找长度依赖于散列表的装填因子
对包含n个元素的散列表进行检索,平均检索长度不直接依赖于n
冲突是不可避免的,与装填因子无关
装填因子越大,发生冲突的可能性越大;反之发生冲突的可能性越小。

顺序表:随机访问;
链表:顺序访问。

MI面试专题

冯诺依曼结构的计算机硬件逻辑组成中有五个部件:输入设备 输出设备 存储器 控制器 运算器

递增选择排序:第一次从待排序的数据元素中选出最小的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小元素,然后放到已排序的序列的末尾,以此比较直到最后一个数

银行家算法用于预防死锁

构造函数:先有基类构造,再有派生类构造。派生类可以对基类构造函数进行重载。
析构函数:从派生类先开始析构,再析构基类。
因为派生类构造函数是重载的,所以要先析构。 二者的过程是相反的。

在C++中不能重载的运算符只有5个:
1、. (成员访问运算符)
2、.* (成员指针访问运算符)
3、:: (域运算符)
4、sizeof (长度运算符)
5、?: (条件运算符)

DNS 域名解析的默认端口是53

各类排序法的时间复杂度
在这里插入图片描述
ps -ef和ps -aux都能查看当前系统中运行着哪些进程
“ps -aL | grep 进程名”可查看主线程中有哪些子线程

函数参数是局部变量,局部变量存于栈区。

Linux 中有很多命令可以用来查看磁盘、CPU 和内存使用率。
查看磁盘使用率:
df -h : 查看所有文件系统的磁盘使用情况,-h 选项可以使输出结果以人类可读的形式显示。
du -sh : 查看指定目录的磁盘使用情况,-s 选项只显示总和, -h 选项可以使输出结果以人类可读的形式显示。
查看 CPU 使用率:
top : 查看当前系统中所有进程的 CPU 使用情况,并以实时的方式更新。
htop : 与 top 类似,但更具可读性。
mpstat : 查看 CPU 在多核环境下的使用率。
查看内存使用率:
free : 查看当前系统的内存使用情况。
vmstat : 查看当前系统的内存、 CPU 使用情况以及进程的情况。
sar : 查看系统的资源使用情况。

32位处理器,计算机中的位数指的是CPU一次能处理的最大位数。 32位计算机的CPU一次最多能处理32位数据,例如它的EAX寄存器就是32位的,当然32位计算机通常也可以处理16位和8位数据

存储密度=单链表数据项所占空间/结点所占空间;
结点所占空间=数据项所占空间+存放后继结点地址的链域

如果需要从代码仓里下拉最新代码,需要什么命令?
git pull

面试反问阶段

您平时在公司的业务是什么?(岗位内容)

“我们做的xxxxxxxx的业务”。

您期望我在工作中能扮演一个什么的角色,能完成什么样的工作,并且具备什么样的技能?

“我面过的大部分实习生在学校中学习的都是基础知识,实际业务能力也是有限的,业务能力的培养还是需要结合工作场景。我更看重实习生的业务成长性,希望带出来的实习生在实习结束能够独立完成需求。我们部门是面向业务需求的,对底层源码可能没有了解的那么深入,虽然理解源码对个人成长很重要,但是我们更希望是能够利用好各自工具完成好需求,当然有的部门是深耕底层架构,他们就更看重底层源码,当然这个也要看不同的部门。”

可以问工作节奏,加班情况等等

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

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

相关文章

【技术美术图形部分】PBR Disney原则的BRDF 次表面散射模型

写在前面 补充去年遗漏下的知识。很多叙述都是参考了众多大佬的文章!因为是作为个人学习总结的博客,所以直接卑微的借鉴过来了,后面会给出所有参考的文章。 另外,放上一个忘了在哪一篇知乎评论里的截图: 说的蛮好。 …

MySQL基础篇笔记

文章目录导入表的问题第3章_最基本的SELECT语句1. SQL语言的规则和规范1) 基本规则2) SQL大小写规范(建议遵守)3) 注释4) 命名规则2. 基本的SELECT语句1) SELECT ... FROM2) 列的别名3) 去除重复行4) 空值参与运算5) 着重号 6) 查询常数3. 显示表结构4. …

贪心算法(基础)

目录 一、什么是贪心? (一)以教室调度问题为例 1. 问题 2. 具体做法如下 3. 因此将在这间教室上如下三堂课 4. 结论 (二)贪心算法介绍 1. 贪心算法一般解题步骤 二、最优装载问题 (一&#xf…

智能驾驶 车牌检测和识别(四)《Android实现车牌检测和识别(可实时车牌识别)》

智能驾驶 车牌检测和识别(四)《Android实现车牌检测和识别(可实时车牌识别)》 目录 智能驾驶 车牌检测和识别(四)《Android实现车牌检测和识别(可实时车牌识别)》 1. 前言 2. 车…

SLAM数学知识回顾

文章目录1、三角函数2、向量运算(1)负向量(2)向量的模(3)标量与向量的运算(4)标准化向量(5)向量的加法和减法(6)距离公式(…

三十七、Kubernetes1.25中数据存储第三篇

1、概述在前面已经提到,容器的生命周期可能很短,会被频繁地创建和销毁。那么容器在销毁时,保存在容器中的数据也会被清除。这种结果对用户来说,在某些情况下是不乐意看到的。为了持久化保存容器的数据,kubernetes引入了…

计算机视觉OpenCv学习系列:第十部分、实时人脸检测

第十部分、实时人脸检测第一节、实时人脸检测1.OpenCV人脸检测支持演化2.OpenCV DNN检测函数3.代码练习与测试学习参考第一节、实时人脸检测 1.OpenCV人脸检测支持演化 OpenCV4 DNN模块 DNN- 深度神经网络 来自另外一个开源项目tiny dnnOpenCV3.3正式发布最新版本OpenCV4.5.…

网络编程 之 epoll

epoll 参数设置 events设置 ev.events EPOLLIN | EPOLLET;epoll实现TCP通讯时,events通用设置如上,EPOLLIN代表可socket套接字可接收数据,EPOLLET代表边沿触发。在服务器端, 接受客户端连接的socket不能设置为EPOLLOUT,只设置E…

【5】【TypeScript】(TypeScript=Type+JavaScript)

Typescript 相比js特有 类型系统;对象的接口DOM操作时候需要进行类型断言上面三个实际是类型系统的三处体现枚举js中,-号可以强制转换为数值,ts不行 所有合法的js都是ts 1、安装 安装进度卡住可以用淘宝镜像 (在后面加 --registr…

Spring Cloud Hystrix有什么作用?

在微服务架构中,通常会存在多个服务层调用的情况,如果基础服务出现故障可能会发生级联传递,导致整个服务链上的服务不可用,如图1所示。图1 服务故障的级联传递在图1中,A为服务提供者,B为A的服务调用者&…

反欺诈(羊毛盾)API有什么作用?

肯定很多企业、商家都遭受过羊毛党的侵入,比如恶意注册、刷单、领用的行为。羊毛党具体有哪些危害呢? 羊毛党的危害 虚假用户裂变:识别在游戏解锁、红包裂变、助力砍价、电商拼团等用户拉新活动中作弊行为。虚假登录注册:防止机…

Java基于springboot大学生宿舍寝室考勤人脸识别管理系统

简介 Java基于springboot开发的大学生寝室管理系统宿舍管理系统。学生可以查找寝室和室友信息,可以申请换寝室,申请维修,寝室长提交考勤信息(宿管确认学生考勤信息),补签,查看寝室通报&#xf…

FPGA纯verilog代码实现图像缩放,两种插值算法任意尺寸缩放,提供3套工程源码

目录1、设计思路和架构2、纯verilog代码搭建,不带任何ip3、双线性插值和邻域插值算法4、vivado和matlab联合仿真及结果5、工程代码1:720P原始摄像头采集显示6、工程代码2:720P缩小到800x600P显示7、工程代码3:720P缩放大1920x1080…

结合FPGA和NVIDIA Jetson Orin NX 系统的视觉边缘计算机

边缘计算机采用NVIDIA Jetson Orin NX模块化系统和高带宽图像采集卡,用于实时图像采集计算和人工智能处理。虹科与一家专注于高速图像采集和处理的以色列科技公司Gidel合作,今天宣布新的NVIDIA Jetson Orin NX™ 16GB模块化系统(SoM)将被添加到Gidel的Fa…

Jmeter接口测试流程详解(中科软测认证中心)

Jmeter接口测试流程详解(中科软测认证中心) 目录:导读 1、jmeter简介 2、jmeter安装 3、设置jmeter的中文界面 4、jmeter主要元件 5、Jmeter元件的作用域和执行顺序 6、jmeter接口测试流程步骤 1、jmeter简介 Jmeter是由Apache公司开…

【数据架构系列-02】从《数据中台能力成熟度模型》的发布,聊聊火了的中台

热点之所以会“热起来”,是由于万众瞩目的那份炽烈,也是因为无数双“手”的奋力炒作。所以,要穿过那“缭绕烟雾”看到本质,便需要冷静的头脑。 2023年1月4日,信通院发布了《数据中台能力成熟度模型》框架,不由让我浮想联翩,之后是不是还会出现…

Python采集豆某影片并作词云图分析

前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 目录前言环境使用:模块使用:爬虫基本思路:代码展示绘制词云图尾语 💝环境使用: Python 3.8 解释器 Pycharm 编辑器 模块使用: import parsel >>> pip install parsel import…

二叉树26:二叉树的最近公共祖先

主要是我自己刷题的一些记录过程。如果有错可以指出哦,大家一起进步。 转载代码随想录 原文链接: 代码随想录 leetcode链接:236. 二叉树的最近公共祖先 题目: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科…

网络工程师备考9章

第九章:网络操作系统与应用服务器 9.1 考点分析 ​​​​​​​ 注:MCSE、RHCE基础:微软和红帽的系统工程师的内容都纳入到一章里;我们要学的服务器类型非常多,最重要的罗列下来,总结起来就是3D+I; 9.1.1 网络操作系统 9.2 安装过程 略 9.3 Windows Server 2008 R2 本…

创新科技引领清洁新标准,CEYEE希亦洗地机重新定义深度清洁

后疫情时代,随着人们健康意识的增强,家庭清洁卫生意识逐渐深入人心,大家对于清洁家电的选择也不再局限于基础功能,而是更注重智能化、健康化、便捷性、多功能等维度。创新型科技新消费品牌「CEYEE希亦」也由此应运而生&#xff0c…