牛客网基础知识强化巩固-周结04

news2024/9/21 8:01:27

链表强化训练

在这里插入图片描述

2022-11-28 打卡

知识点总结

  1. 磁盘字节和比特的问题

    1. 文件分配表FAT是管理磁盘空间的一种数据结构,用在以链接方式存储文件的系统中记录磁盘分配和跟踪空白磁盘块。整个磁盘仅设一张FAT表,其结构如下图所示。如果文件块号为2,查找FAT序号为2的内容得知物理块2的后继物理块是5;再查FAT序号为5的内容得知物理块5的后继物理块是7;接着继续查FAT序号为7的内容为“^”,即该文件结束标志,所以该文件由物理块2、5、7组成。
    2. 假设磁盘物理块大小为1KB,并且FAT序号以4bits为单位向上扩充空间。请计算下列两块磁盘的FAT最少需要占用多大的存储空间?
      1)一块540MB的硬盘
      2)一块1.2GB的硬盘

    1B = 8bit

    序号只能是4的倍数。

    • 物理块大小1KB,540MB,即540K个分区,计算 2^19 < 540K < 2^20,所以序号是20个bit,且20是4的倍数。每个序号需要20 / 8 = 2.5B的空间存储。

    540MB需要540K * 2.5B = 1350KB即1.35M 。

    • 1.2GB,即1200K个分区,2^20 < 1200K < 2^21,也就是需要21个bit才能存储,但是序号只能是4个倍数,所以需要24个bit,也就是3B的空间。

    1.2GB需要1200K * 3B = 3600KB即3.6M

  2. 单链表

    1. 链表由头指针唯一确定,单链表可以用头指针的名字来命名
  3. 数据元素与数据项

    1. 线性表:零个或多个数据元素的有限序列
    2. 数据项:一个数据元素可以由多个数据项组成(例如:人由眼鼻手脚等组成)
    3. 数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。一个数据元素可由若干个数据项组成,数据项是构成数据元素的不可分割的最小单位。例如,学生记录就是一个数据元素,它由学号、姓名、性别等数据项组成

2022-11-29 打卡

知识点总结

  1. 广义表的例子
    1. ① E=()
      E是一个空表,其长度为0。
    2. ② L=(a,b)
      L是长度为2的广义表,它的两个元素都是原子,因此它是一个线性表
    3. ③ A=(x,L)=(x,(a,b))
      A是长度为2的广义表,第一个元素是原子x,第二个元素是子表L。
    4. ④ B=(A,y)=((x,(a,b)),y)
      B是长度为2的广义表,第一个元素是子表A,第二个元素是原子y。
    5. ⑤ C=(A,B)=((x,(a,b)),((x,(a,b)),y))
      C的长度为2,两个元素都是子表。
    6. ⑥ D=(a,D)=(a,(a,(a,(…))))
      D的长度为2,第一个元素是原子,第二个元素是D自身,展开后它是一个无限的广义表。
  2. 双链表的搜索速度与方差比较
    1. 如果链表数据是无序的,则单向搜索与双向搜索平均速度相同
    2. 如果链表是有序的,而要搜索的数据距离最小值(最大值)较近,这种情况下双向搜索平均速度更快。(双向搜索和单项搜索都是一个一个进行搜索,并不是双向搜索一次搜索两个值)
    3. 因此双向搜索更稳定,方差更小(有序的时候波动比较稳定,所以方差较小)

2022-11-30 打卡

知识点总结

  1. 什么是跳表?(引用博客外链作为学习使用,如有侵权请联系删除)
    1. 跳表是可以实现二分查找的有序链表。(跳表实现插入、删除、随机存取的时间复杂度和红黑树几乎相同。O(logn))。
  2. 跳表的原理
    1. 在这里插入图片描述

    2. 现在我们有个场景,想快速找到上图链表中的 10 这个元素,只能从头开始遍历链表,直到找到我们需要找的元素。查找路径:1、3、4、5、7、8、9、10。这样的查找效率很低,平均时间复杂度很高O(n)。那有没有办法提高链表的查找速度呢?如下图所示,我们从链表中每两个元素抽出来,加一级索引,一级索引指向了原始链表,即:通过一级索引 7 的down指针可以找到原始链表的 7 。那现在怎么查找 10 这个元素呢?

    3. 先在索引找 1、4、7、9,遍历到一级索引的 9 时,发现 9 的后继节点是 13,比 10 大,于是不往后找了,而是通过 9 找到原始链表的 9,然后再往后遍历找到了我们要找的 10,遍历结束。有没有发现,加了一级索引后,查找路径:1、4、7、9、10,查找节点需要遍历的元素相对少了,我们不需要对 10 之前的所有数据都遍历,查找的效率提升了。

    4. 那如果加二级索引呢?如下图所示,查找路径:1、7、9、10。是不是找 10 的效率更高了?这就是跳表的思想,用“空间换时间”,通过给链表建立索引,提高了查找的效率。

    5. 在这里插入图片描述

    6. 以此类推,当有巨大数据量时,跳表的查找速度无疑不是一个巨大的提升

Java 语言强化训练

2022-11-29 打卡

知识点总结

  1. NumberList是一个顺序容器,以下代码执行后,NumberList里的元素依次为:

    1. List<int> NumberList = new List<int>(){2,4,1,3,5};
      for(int i = 0;i<NumberList.Count;++i)
      {
        int v = NumberList[i];
        if(v%2 = = 0)
        {
          NumberList.Remove(v);//删除的是元素,而非下标
        }
      }
      
      
    2. 初始时为 {2,4,1,3,5} v=NumberList[0]=2; 2是偶数,删除2。 {4,1,3,5}

    3. v=NumberList[1]=1 1为奇数,NumberList不变。

    4. v=NumberList[2]=3 3为奇数,NumberList不变。

    5. v=NumberList[3]=5 5为奇数,NumberList不变。

    6. 最后NumberList中的元素为{4,1,3,5}

栈 强化训练

在这里插入图片描述

2022-12-01 打卡

知识点总结

  1. 关于栈的叙述中正确的是:

    1. 函数调用时,系统通常要用栈保存必要的信息
  2. 关于栈和堆的区别

    1. 栈的大小是固定的,堆的大小受限于系统中有效的虚拟内存
    2. 栈的空间由系统决定何时释放,堆需要自己决定何时去释放
    3. 堆的使用容易产生碎片,但是用起来最方便
  3. 关于堆内存和栈内存

    1. 两个术语虽然只有一字之差,但是所表达的意义还是有差别的,堆内存和栈内存的区别可以用如下的比喻来看出:
    2. 使用堆内存就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且 自由度 大。
    3. 使用栈内存就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱和吃(使用),吃饱了就走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自由度小。
    4. 操作系统中所说的堆内存和 栈内存 ,在操作上有上述的特点,这里的堆内存实际上指的就是(满足堆内存性质的) 优先队列 的一种数据结构,第1个元素有最高的 优先权 ;栈内存实际上就是满足先进后出的性质的数学或数据结构。
    5. 栈内存操作系统来分配,堆内存由程序员自己来分配。
    6. 栈有系统自动分配,只要栈 剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出。
  4. 堆和栈的区别主要有五大点:

    1)申请方式不同:栈由系统自动分配,而堆是人为申请开辟的;

    2)申请大小不同:栈获得的空间较小,而堆获得的空间较大;

    3)申请效率的不同:栈由系统自动分配,速度较快,而堆一般速度比较慢;

    4)存储内容的不同:栈在函数调用时,函数调用语句的下一条可执行语句的地址第一个进栈,然后函数各个参数进栈,其中静态变量是不进栈的,而堆中一般是在头部用一个字节存放堆的大小,堆中的具体内容是人为安排的;

    5)底层不同,栈是连续的空间,而堆是不连续的空间。

    栈自动堆人为,栈小堆大,栈快堆慢,栈连续而堆不连。

2022-12-02 打卡

知识点总结

  1. 卡特兰数,计算按出栈的先后顺序组成不同的字符串,最多能有多少个

    1. f(n) =C(2n,n)/(n+1)
  2. 用俩个栈模拟实现一个队列,如果栈的容量分别是O和P(O>P),那么模拟实现的队列最大容量是多少?

    1. 答:2P+1个

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XmM6Ghab-1670118894993)(牛客网强化训练.assets/5138660_1563951105758_F85D9B59D712E39D2A727F0F3373E16C.png)]

  3. 在Windows中,关于栈和堆

    • 栈区(stack)由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。

    • 堆区(heap)一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事。

    区别:

    1. 管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制;对于堆来说,释放工作由程序员控制,容易产生内存溢出。

    2. 空间大小:堆内存几乎是没有什么限制。栈一般都是有一定的空间大小。

    3. 碎片问题:对于堆来讲,频繁的new/delete会造成内存空间的不连续,从而造成大量的碎片,使程序效率降低。对于栈来讲,则不会存在这个问题。

    4. 分配方式:堆都是动态分配的,没有静态分配的堆。栈有2种分配方式:静态分配和动态分配。

    5. 分配效率:栈的效率比较高。堆的效率比栈要低得多。

    6. 增长方向:堆的增长方向是从程序低地址到高地址向上增长,而栈的增长方向刚好相反(实际情况可能不是这样的,与CPU的体系结构有关)

    注意:这里的堆和数据结构中的堆没啥关系。

2022-12-03 打卡

知识点总结

  1. 中缀转后缀的技巧->A + (B + C) * D

    1. 先将中缀表达式加括号:(A + ((B + C) * D));
      2. 再把运算符移到括号后面(前缀移到前面):(A ((B C)+ D))+;
      3. 把括号去掉:ABC+D
      +。

    同样适用于中缀转前缀

  2. 堆栈是一种LIFO的数据结构

    1. LIFO: Last in First out 后进先出

2022-12-04 打卡

知识点总结

  1. 栈的链式存储结构:top指针相当于单链表中的头指针,入栈即在链头插入。栈的链式存储简称链栈,没有头结点。top=NULL表示栈为空
  2. 栈的顺序存储结构:即用一个StackSize大小的数组来存储整个栈,那么下标为0的元素就是栈底元素,用top变量来指示栈顶元素,因为数组的大小为StackSize,所以0<= top <StackSize。当top=0时表示该栈只有一个元素,top=StackSize-1时表示栈满,top=-1时,表示栈为空栈

计算机网络强化训练

2022-11-28 打卡

知识点总结

  1. HTTP常见状态码及其原因(引用博客链接用于学习使用,如有侵权联系删除)

    1. 200 success 请求成功
      1. 状态详细说明HTTP 200 表示http请求成功。即正常的成功访问时响应的状态码。
      2. 常见应用案例:Status Code: 200 OK 表示网站访问正常,服务器工作稳定,这是最常见的一种状态码。

    3xx 请求重定向

    1. 301 Moved Pemanently 永久跳转
      1. 状态详细说明HTTP 301 表示被请求的资源已永久移动到新位置,即我们常说的301跳转,并且将来任何对此资源的引用都应该使用本响应返回的URI。如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器反馈回来的地址。
      2. 常见应用案例:Status Code: 301 Moved Permanently 表示URL发生跳转。通常是旧Url已经不在使用,内容已经移动到了新的Url时发生的。网站改版时通常会使用此状态码。
    2. 302 Moved Temporarily 临时跳转
      1. 状态详细说明HTTP 301 表示被请求的资源已永久移动到新位置,即我们常说的301跳转,并且将来任何对此资源的引用都应该使用本响应返回的URI。如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器反馈回来的地址。
      2. 常见应用案例:Status Code: 301 Moved Permanently 表示URL发生跳转。通常是旧Url已经不在使用,内容已经移动到了新的Url时发生的。网站改版时通常会使用此状态码。

    4xx 客户端请求发生错误

    1. 400 Bad Request 客户端请求错误
      1. 状态详细说明HTTP 400 表示请求包含语法错误。除非进行修改,否则客户端不应该重复提交这个请求。
      2. 常见应用案例:Status Code: 400 Bad Request 表示客户端发起了一个错误的请求,通常是域名未解析到正确的IP,或解析后,服务器端未绑定此域名导致。
    2. 403 Forbidden 客户端操作权限不够或者服务端禁止该IP进行访问
      1. 状态详细说明HTTP 403 表示服务器已经理解请求,但是拒绝执行它。与401的拒绝响应不同的是,这与身份验证无关,而且这个请求也不应该被重复提交。如果这不是一个HEAD请求,而且服务器希望能够讲清楚为何请求不能被执行,那么就应该在实体内描述拒绝的原因。当然服务器也可以返回一个404响应,假如它不希望让客户端获得任何信息。
      2. 常见应用案例:Status Code: 403 Forbidden 表示客户端发起了请求,但此请求被服务器端拒绝。通常是由客户端浏览器UA设置不正确,或所在IP不允许访问该服务器。
    3. 404 Not Found 客户端页面路径错误,找不到该文件
      1. 状态详细说明HTTP 404 表示请求失败,请求所希望得到的资源未被在服务器上找到,有可能网址内容根本不存在,或曾经存在,但当前已经被删除。没有信息能够告诉用户这个状况到底是暂时的还是永久的。404这个状态码被广泛应用于当服务器不想揭示到底为何请求被拒绝或者没有其他适合的响应可用的情况下。

    5xx 服务端出现问题

    1. 500 Internet Server Error 服务端程序内部代码错误
      1. 状态详细说明HTTP 500 表示服务器端程序错误,导致了它无法完成对请求的处理。
      2. 常见应用案例:Status Code: 500 Internal Server Error 表示服务器端程序或配置发生致命错误,需要管理员检查服务器程序排除故障。在IIS中,通常配置错误也会触发此状态码。
    2. 502 Bad Gateway 服务端网关错误,请求发送到网关时服务器繁忙或者处于关闭状态
      1. 状态详细说明HTTP 502 表示作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。在webserver+后端脚本语言的环境中(如Nginx + php-fpm),通常由脚本处理语言未启动或宕机引起。
      2. 常见应用案例:Status Code: 502 Bad Gateway 表示服务器端脚本解释器或代理端,如PHP,ASP,JSP,Python等脚本语言端未启动或无响应,以及反向代理端无响应。需要管理员检查脚本配置,若配置正确,通常重启脚本端可排除故障。
    3. 504 Gateway Timeout 服务端请求超时
      1. 状态详细说明HTTP 504 表示作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应。注意:某些代理服务器在DNS查询超时时会返回400或者500错误。在webserver+后端脚本语言的环境中(如Nginx + php-fpm),通常由脚本处理语言超时引起。
      2. 常见应用案例:Status Code: 504 Gateway Timeout 表示服务器的脚本语言端或代理端,如PHP,ASP,JSP,Python等或反向代理端已接受请求,但在设定的时间内未完成响应,即响应超时。通常可调响应超时的时间,和排除程序无限循环的情况。

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

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

相关文章

使用 Echarts 插件实现柱状图功能

目录前言&#xff1a;什么是 Echarts 插件柱状图成品展示步骤&#xff1a;柱状图代码&#xff1a;总结&#xff1a;前言&#xff1a; 大家都知道&#xff0c;一般情况下&#xff0c;想要使用前端设置一个 柱状图 需要使用 canvas 画布进行编写&#xff0c;不仅代码多&#xff…

Python实现基于用户的协同过滤推荐算法构建电影推荐系统

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 基于用户的协同过滤推荐&#xff08;User-based CF&#xff09;的原理假设&#xff1a;跟你喜好相似的人…

RNA-seq 详细教程:搞定count归一化(5)

学习目标 了解如何在归一化过程中列出不同的 uninteresting factors(无关因素)了解常用的归一化方法&#xff0c;已经如何使用了解如何创建 DESeqDataSet 对象及其结构了解如何使用 DESeq2 进行归一化1. 归一化 差异表达分析工作流程的第一步是计数归一化&#xff0c;这是对样本…

exploit-db图文教程

一、ExploitDB 简介 ExploitDB 是一个面向全世界黑客的漏洞提交平台&#xff0c;该平台会公布最新漏洞的相关情况&#xff0c;这些可以帮助企业改善公司的安全状况&#xff0c;同时也以帮助安全研究者和渗透测试工程师更好的进行安全测试工作。Exploit-DB 提供一整套庞大的归档…

Spring框架(十):Spring注解开发配置MyBatis框架等第三方框架

Spring注解开发配置MyBatis框架等第三方框架引子注解配置MyBatis注解整合Mapper的原理Import注解整合第三方框架引子 痛定思痛&#xff0c;主要问题出现在自己雀氏不熟悉框架底层、一些面试题&#xff0c;以及sql的一些情况淡忘了。 本章节的开始是对于过去的重新回顾&#xf…

IDEA常用插件(持续更新中......)

再使用idea办公后&#xff0c;会发现安装一些插件&#xff0c;对我们来说会事半功倍。同时也会让同事也开始情不自禁的嘚瑟了。 1.Free Mybatis plugin mybatis和mybatis-plus基本上是目前最主流的ORM框架了&#xff0c;相比于Hibernate更加灵活&#xff0c;性能也更好。所以…

爬虫入门——1、基本概念

1、爬虫是什么 网络爬虫&#xff08;又称网络机器人&#xff09;&#xff0c;是一种按照一定的规则&#xff0c;自动地抓取网络信息的程序或者脚本。 通俗地讲&#xff0c;我们把互联网比作一张大蜘蛛网&#xff0c;每个站点资源比作蜘蛛网上的一个结点&#xff0c;爬虫就像一…

【spark】第二章——SparkCore之运行架构及核心编程

文章目录1. Spark 运行架构1.1 1 运行架构1.2 核心组件1.2.1 Driver1.2.2 Executor1.2.3 Master & Worker1.2.4 ApplicationMaster1.3 核心概念1.3.1 Executor 与 Core1.3.2 并行度&#xff08;Parallelism&#xff09;1.3.3 有向无环图&#xff08;DAG&#xff09;1.4 提交…

Compiere的应用字典介绍

模型驱动架构介绍 本章介绍了Compiere的模型驱动架构和Compiere的数据字典功能。 在大多数应用程序中&#xff0c;开发人员必须设计代码并测试每个屏幕。这可能是非常耗时的&#xff0c;并导致整个应用程序在外观和感觉以及功能方面的不一致。 这也会使用户难以学习像ERP这样复…

H5 Canvas 垂直箭头绘制

效果 ⚠ 因为使用的是斜率来处理的垂直逻辑 tan&#xff0c;当为被除数为0时做了特殊处理&#xff0c;两点自由变换时到达零界点会有卡顿。 推导 开始复习初中二年级数学知识 斜率k的公式&#xff1a;k(y1−y2)(x1−x2)k \dfrac{(y_1 -y_2)}{(x_1 - x_2)}k(x1​−x2​)(y1​…

【三维目标检测】VoteNet(一)

VoteNet是用于点云三维目标检测模型算法&#xff0c;发表在ICCV 2019《Deep Hough Voting for 3D Object Detection in Point Clouds》&#xff0c;论文地址为“https://arxiv.org/abs/1904.09664”。VoteNet核心思想在于通过霍夫投票的方法实现了端到端3D对象检测网络&#xf…

LeetCode 852. 山脉数组的峰顶索引

&#x1f308;&#x1f308;&#x1f604;&#x1f604; 欢迎来到茶色岛独家岛屿&#xff0c;本期将为大家揭晓LeetCode 852. 山脉数组的峰顶索引 &#xff0c;做好准备了么&#xff0c;那么开始吧。 &#x1f332;&#x1f332;&#x1f434;&#x1f434; 一、题目名称 Leet…

[Error]适配iPad时调用UIAlertController和UIActivityViewController软件崩溃问题

问题&#xff1a; 适配iPad时&#xff0c;调用UIAlertController和UIActivityViewController软件崩溃。iPhone设备上软件运行正常。 错误打印如下&#xff1a; Thread 1: "UIPopoverPresentationController (<UIPopoverPresentationController: 0x12f33b020>) sho…

管道模式 流处理

&#xff08;一&#xff09;介绍 管道这个名字源于自来水厂的原水处理过程。原水要经过管道&#xff0c;一层层地过滤、沉淀、去杂质、消毒&#xff0c;到管道另一端形成纯净水。我们不应该把所有原水的过滤都放在一个管道中去提纯&#xff0c;而应该把处理过程进行划分&#…

Pytorch Bert 中文分类 运行代码时候遇到的问题

问题1 bert AutoModel.from_pretrained(bert-base-chinese) 报错信息如下&#xff1a; RuntimeError: Error(s) in loading state_dict for BertModel: size mismatch for bert.embeddings.word_embeddings.weight: copying a param with shape torch.Size([21128, 768…

m基于GA遗传算法的PMSM永磁同步电机参数最优计算matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 永磁同步电机&#xff08;PMSM&#xff09;基本结构为定子、转子和端盖。其中转子磁路结构是永磁同步电机与其它电机最主要的区别&#xff0c;其在很大程度上决定了永磁同步电机的实际性能指标。…

AtCoder Beginner Contest 280 老年人复建赛

好久没更新了&#xff0c;因为最近p事实在是有点多&#xff0c;让人心烦意乱 还是安安心心打比赛舒服 A&#xff0c;B&#xff0c;C就不讲啦 D - Factorial and Multiple 大意&#xff1a; 给定一个数字k<1e12&#xff0c;求最小的数字n满足n!%k0; 思路1&#xff1a; 不…

hadoop完全分布式环境搭建详细版

1. hadoop集群规划 1.准备3台客户机(关闭防火墙&#xff0c;静态ip&#xff0c;主机名称) 2.安装jdk 3.配置环境变量 4.安装hadoop&#xff0c;hadoop版本是3.1.3,包名为hadoop-3.1.3.tar.gz 5.配置环境变量 6.配置集群 7.单点启动 8.配置ssh 9.群起集群并测试集群 注意: NameN…

Ubuntu20.04静态路由表连通局域网各网段主机 Vmware WorkStation

文章目录示例拓扑虚拟机的三种网络模式虚拟网络编辑器的设置虚拟主机与虚拟路由设置细节Ubuntu20.04设置静态IP给R1添加双网卡给R1、R2开启转发功能配置路由表References示例拓扑 宿主机是Windows11 PC与Router均为 Ubuntu20.04系统。 虚拟机的三种网络模式 虚拟机默认是只初…

如何利用InVest模型估算区域产水量

1.什么是InVEST模型 InVEST模型&#xff08;Integrated Valuation of Ecosystem Services and Tradeoffs &#xff09;是生态系统服务评估与权衡模型的简称&#xff0c;是美国自然资本项目组开发的、用于评估生态系统服务功能量及其经济价值、支持生态系统管理和决策的一套模型…