草庐IT

Netty-NIO基础

全部标签

2024.02.03动态规划基础之暴力DP

课堂内容了解动态规划(DynamicProgramming,DP)及其解决的问题、根据其设计的算法及优化。动态规划是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。由于动态规划并不是某种具体的算法,而是一种解决特定问题的方法,因此它会出现在各式各样的数据结构中,与之相关的题目种类也更为繁杂。动态规划与其它类型的递推的确有很多相似之处,学习时可以注意它们之间的异同。最长上升子序列问题(LIS)纯暴力:O(2n)O(2^n)O(2n)暴力dp:fi=max{fj+1},jfi​=max{fj​+1},ji,aj​ai​时间效率O(n2)O(n^2)O(n2)二分:构造上升目标数组:

十大基础排序算法

排序算法分类排序:将一组对象按照某种逻辑顺序重新排列的过程。按照待排序数据的规模分为:内部排序:数据量不大,全部存在内存中;外部排序:数据量很大,无法一次性全部存在内存中,因此排序中需要访问外存。按照排序是否稳定分为:稳定排序:相等的元素在排序前后的相对位置不变。例如,a等于b,且原序列a在b前,排序后a仍在b前,则为稳定排序。不稳定排序:相等元素在排序前后的相对位置可能发生变化。按照是否需要额外内存分为:原地排序:在排序过程中不申请多余的存储空间,只利用原来存储待排数据的存储空间进行比较和交换的数据排序。非原地排序:需要额外内存空间存储数组副本以辅助排序。按照排序方式分为:比较类排序:通过比

python 基础知识点(蓝桥杯python科目个人复习计划58)

今日复习内容:做题例题1:仙境诅咒问题描述:在一片神秘的仙境中,有N位修仙者,他们各自在仙境中独立修炼,拥有他们独特的修炼之地和修炼之道,修炼者们彼此之间相互尊重,和平相处。然而,有一天,仙境的主宰者妮妮(第一位修仙者)收到了诅咒,该诅咒会向距离妮妮不超过D的范围内范围内的修仙者传播。也就是说,如果一个修仙者被诅咒,那么在距他不超过D的范围内的修仙者都会收到诅咒。现在,你需要预测哪些修仙者最终会被诅咒,以便及时采取措施,保护仙境的和平与安宁。输入格式:第一行输入一个正整数N(1接下来N行,每行两个实数Xi和Yi(-10^3最后一行输入一个整数D(1输出格式:输出N行,每行一个整数,第i行整数为

云计算基础-快照与克隆

快照及克隆什么是快照快照是数据存储的某一时刻的状态记录,也就是把虚拟机当前的状态保存下来(快照不是备份,快照保存的是状态,备份保存的是副本)快照优点速度快,占用空间小快照工作原理在了解快照原理前,首先需要知道两个概念:索引/数据和差分盘索引和数据(indexnode/datablock)首先要了解,每一个文件系统都是有两部分组成的:索引和数据(indexnode/datablock),索引有时候也称为元数据metadata,如图:indexnode有时候也称为metadate(元数据),也叫元素,它是描述数据的数据,比如文件的名字,文件的大小,文件的权限,文件的指针(指针指向文件在硬盘上的物理

Docker-基础

Docker⛅虚拟化&容器化🌠为什么要虚拟化&容器化⛅虚拟化实现方式🌠应用程序执行环境分层🌠虚拟化常见类别☃️虚拟机☃️容器☃️JVM之类的虚拟机🌠常见虚拟化实现☃️主机虚拟化(虚拟机)实现☃️容器虚拟化实现⛅虚拟化&容器化物理机:实际的服务器或者计算机相对于虚拟机而言的对实体计算机的称呼.物理机提供给虚拟机以硬件环境,有时也称为"寄主"或"宿主"虚拟化:是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率容器化:容器化是一种虚拟化技术,又称操

SQL基础----聚合函数及group by、having、部分常见函数

 一、聚合函数及groupby标准语法  聚合函数类型:sum(),avg(),max(),min(),count()在不使用groupby情况下,select后跟的全是字段名或全是聚合列(如sum(),min()...),不能"select字段名,sum()"混搭。在使用groupby情况下,select后可以跟“字段名,聚合列”,但是其中的字段名必须是groupby中所列的字段名,没列的字段名也是不能使用的。聚合列里的字段名就可以不是groupby包含的。sum、avg、max、min函数必须指定字段进行聚合运算,无法使用通配符,同时这些指定字段名的聚合函数都会忽略空值行。count(字段

java - 从 ReadOnly java.nio.ByteBuffer 中提取字符串

如何从只读的ByteBuffer中提取字符串?我不能使用ByteBuffer.array()方法,因为它会抛出ReadOnlyException。我是否必须使用ByteBuffer.get(arr[])并将其复制出来以读取数据并创建一个字符串?只为了阅读而必须创建一个副本似乎很浪费。 最佳答案 您应该能够使用Charset.decode(ByteBuffer)这会将ByteBuffer转换为CharBuffer。然后只需调用toString()即可。示例代码:importjava.nio.*;importjava.nio.chars

【数字IC精品文章收录】近500篇文章-学习路线-基础知识-接口-总线-脚本语言-芯片求职-安全-EDA-工具-低功耗设计-Verilog-低功耗-STA-设计-验证-FPGA-架构-AMBA-书籍-

数字IC全站文章索引demo版(建议收藏慢慢看)*一、项目说明*1.1索引目的1.2收录原则1.3投稿方式1.4版本迭代二、数字IC学习路线三、通用技能篇*3.1数字电路3.2硬件描述语言(Verilog)3.3linux操作系统3.4C语言3.5微机原理3.6汇编语言3.7计算机组成原理3.8计算机体系架构3.9STA静态时序分析3.10SystemVerilog3.11UVM3.12SVA3.13信号与系统3.14数字信号处理四、总线、接口与协议*4.1UART协议4.2SPI协议4.3I2C协议4.4AMBA协议*4.4.1AHB4.4.2APB4.4.3AXI4.4.4AXI-stre

多线程基础详解(看到就是赚到)

🎥 个人主页:Dikz12📕格言:那些在暗处执拗生长的花,终有一日会馥郁传香欢迎大家👍点赞✍评论⭐收藏目录 创建线程 1.创建类继承Thread,重写run() 2.实现Runnable,重写run()3.继承Thread,使用匿名内部类 4.使用lambda表达式(推荐)线程启动 线程中断1.手动设置标志位2.使用内部自带的标志位(interrupt)线程等待 线程状态 线程安全 synchronized(可重入锁)使用方法 死锁关于死锁问题 死锁能产生,一定涉及到四个必要条件 volatile关键字(解决内存可见性问题)  创建线程 1.创建类继承Thread,重写run()classMy

【C语言】熟悉文件基础知识

欢迎关注个人主页:逸狼创造不易,可以点点赞吗~如有错误,欢迎指出~文件为了数据持久化保存,使用文件,否则数据存储在内存中,程序退出,内存回收,数据就会丢失。程序设计中,文件分两种:程序文件、数据文件文件名唯一的文件标识,包含3部分:文件路径+文件名主干+文件后缀 (例:c:\code\test.txt )文本文件和二进制文件文本文件是数据以ASCII字符的形式存储的文件二进制文件是数据在内存中以二进制的形式存储的文件字符⼀律以ASCII形式存储,数值型数据既可以⽤ASCII形式存储,也可以使⽤⼆进制形式存储。如有整数10000,如果以ASCII码的形式输出到磁盘,则磁盘中占⽤5个字节(每个字符