自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 LVM实战

LVM原理及实战

2023-02-12 17:53:28 170

原创 CentOS7从命令行模式切换到图形化界面

CentOS7从命令行模式切换到图形化界面

2022-10-06 00:40:41 4129 2

原创 Git提交代码

Git提交代码流程

2022-10-06 00:32:53 157

原创 LRU缓存淘汰算法

LRU缓存淘汰算法:全称:Least Recently Used的缩写,即最近最少使用算法是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间 t,当须淘汰一个页面时,选择现有页面中其 t 值最大的,即最近最少使用的页面予以淘汰。比较好的实现主要是使用双端链表,加hashmap进行映射,这样可以保证添加元素和更新淘汰元素的时间复杂度都是O(1)算法实现利用java自带的LinkedHashMap实现imp

2021-09-28 11:32:28 235

原创 设计模式之建造者模式

建造者模式简介:使用简单的对象逐步构建复杂对象,属于创造型模式将复杂的构建和表示形态相分离,使用同样的构建过程可以创建不同的对象易于扩展,因为创建造者独立和工厂模式的区别在于建造者模式更加关注与零件装配的顺序[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zrtcRtKI-1631504375030)(https://www.runoob.com/wp-content/uploads/2014/08/20210315-builder-pattern.svg)]

2021-09-13 11:40:31 54

原创 设计模式之抽象工厂模式

抽象工厂模式简介:抽象工厂模式是围绕一个超级工厂创建其他的工厂,也就是这个超级工厂就是工厂的工厂,属于创建型模式。特点:提供一个创建一系列相关或者相互依赖对象的接口,不需要制定其对象的具体类主要是一个产品族模式。主要适用于系统的产品多于一个的产品族,但系统每次使用时只使用其中的一个产品族解决了接口的选择问题当多个产品族中的多个对象一起工作时,能够保证客户端始终只使用一个同产品族中的对象缺点产品族难以扩展抽象接口实现为形状创建一个接口public interface Shape

2021-09-13 10:12:15 44

原创 设计模式之工厂模式

工厂模式简介:工厂模式属于创建型模式,它提供了一种创建对象的最佳方式,在工厂模式中,创建对象时不会对客户端暴露创建逻辑。目标:定义了一个创建对象的接口,让子类决定实例化哪一个工厂,可以将对象的创建过程延迟到子类进行。优点:如果需要创建一个对象,只需要知道其名称即可如果想增加产品只需要扩展工厂类即可用户只需要关心产品的接口即可,不需要关心对象的创建过程缺点:每增加一个产品,都需要增加对应的具体产品类和对象工厂实现类,导致类的个数过多,系统的复杂度增加注:对于复杂对象的创建可是使用工

2021-09-11 18:55:40 55

原创 设计模式之单例模式

单例模式概念单例模式属于创建型模式,提供了一种创建对象的最佳方式,特点:单例模式只能有一个实例单例模式的构造器必须私有化,同时自己为自己创建一个唯一实例需要对外提供访问该实例的接口目的:主要解决一个全局使用的类频繁地创建与销毁,保证一个类只有一个实例,并且提供了访问该实例的全局访问接口。优点:在内存里只存在一个实例,减少了内存的开销,同时也避免对资源的多重占有。单例模式的实现1、饿汉式:优点:实现简单多线程安全没有进行加锁处理,执行效率较高public class

2021-09-11 16:42:01 59

原创 Linux内存管理常用命令

Linux内存管理常用命令top**top:**相当于Linux中的任务管理器top## 可以查看当前任务进程情况在进程界面:按M可以查看占用内存最多的进程按c可以显示进程所在的路径按G可以切换内存显示单位freefree: 命令可以查看系统内存使用状态,包括物理内存、交换内存(swap)和内核缓冲区内存默认情况下,即在没有选项的情况下, free 命令显示内存的使用信息。默认按照k(b)的计数单位统计。[test@localhost dir1]$ free

2021-09-02 10:04:18 907

原创 Linux提示ipconfig命令不存在

Linux提示没有ipconfig重点:注意: 在Linux中查看网络的命令是ifconfig ,而在Windows中查看网络的命令是ipconfig注意这两个的区别,一个是if 而另一个是ip,两个命令是不一样的。解决方法:在确保你的命令没有错误的情况下,可以使用如下命令查看是否有ifconfig命令:ls /sbin/ifconfig不存在的话可以使用一下命令进行安装:有管理员权限:yum --y install net-tool 没有管理员权限:sudo yum -y ins

2020-10-27 10:53:00 7098 1

原创 Linux_用户管理

Linux用户管理一、用户账号的管理1、新用户添加useradduseradd 选项 用户名参数;选项:-c comment 指定一段注释性描述。-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。-g 用户组 指定用户所属的用户组。-G 用户组,用户组 指定用户所属的附加组。-s Shell文件 指定用户的登录Shell。-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。用户名:指定新账号的登录名。

2020-10-21 15:31:19 129

原创 Linux-文件查看命令

Linux文件查看命令1、catcat: 由第一行开始显示文件内容cat [-AbEnTv]选项与参数:-A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!-E :将结尾的断行字节 $ 显示出来;-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;-T :将 [tab] 按键以 ^I 显示出来;-v :列出一些看不出来的特殊字符clencay@ubuntu:~/Desktop$ cat b

2020-10-21 15:29:46 92

原创 全排列输出

算法:全排列输出题目:给定一个包含不同长度的元素的列表,输出全部的可能性诸如:给定数组 :arr = [[1, 2], [3], [4, 5]]输出:1,3,41,3,52,3,42,3,5解法:由于我并不知道数组arr的长度是多少,所以暴力解法无法求的答案,因此可以考虑将数组元素进行合并,每次前两个小列表,接着将上次的合并结果和剩余的小列表进行合并,直到最后值剩下两个小列表时,使用暴力遍历的手段将结果输出。具体实例分析:对于数组arr = [[1, 2], [3], [4,

2020-10-17 21:20:50 331

原创 python协程

协程文章目录协程协程概念:协程的实现:1、yield、send2、yield from3、asyncio.coroutine和yield from4、async和await协程概念:协程: 又称微线程,纤程,协程是一种用户态的轻量级线程。协程的作用: 在执行A函数的时候,可以随时中断,去执行B函数,然后中断继续执行A函数(可以自动切换),协程过程并不是函数调用(没有调用语句),过程很像多线程,然而协程只有一个线程在执行。特点:必须在只有一个单线程中实现并发用户可以在自己的程序中保存多个控制流

2020-10-17 21:17:45 273

原创 python的抽象类

python抽象类的实现可以借助库abc来实现先创建类A():import abcclass A(metaclass=abc.ABCMeta): # 抽象类 @abc.abstractmethod # 声明抽象方法 def read(self): pass @abc.abstractmethod def write(self): pass def __str__(self): print("共有方法,__

2020-10-17 21:15:46 139

原创 Linux-常用目录操作命令

Linux-常用目录操作命令文章目录Linux-常用目录操作命令1、文件查看命令-ls2、目录切换命令-cd3、当前目录查看命令-pwd命令4、目录创建-mkdir命令5、目录删除-rmdir命令6、文件或目录复制-cp命令7、文件或目录移除-rm命令8 、文件或目录移动-mv命令1、文件查看命令-lsls: (英文全拼:list files): 列出目录及文件名查看根目录的文件分布ls /----------------------------bin dev initrd.img

2020-10-17 20:52:28 170

原创 最小堆

最小堆(python实现)1、简介最小堆是一个二叉树,非叶节点的值不大于其子节点的值。2、调整为最小堆(构建)class heapd: def __init__(self): pass def heapqify(self, nums): """ 构建最小堆 :param nums:需要调整的数组 :return: """ for i in range(len(nums)

2020-09-23 13:48:10 302

原创 决策树

决策树1、算法思想:​ 决策树是一棵树形结构,每个分支节点代表一个特征属性,而叶子节点则存放的是分类的类别对应的决策结果。非叶节点代表一个属性测试,存储该属性下的样本,将该样本集合按照其属性特征划分到子节点中,对于离散属性可以划分到多个子节点,连续属性可以使用二分法,也可以进行处理将其转换为可划分属性。​ 决策树的目标为建立一个具有强大泛化能力的模型,采用的“分而治之”的策略。2、算法步骤`输入 :训练集X={(x1,y1),(x2,y2),…,(xn,yn)}​ 属性集A={a

2020-09-21 21:00:52 144

原创 单链表

单链表定义​ 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素 + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。单链表图示LeetCode题目请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9]

2020-06-03 09:21:04 149

原创 宝石与石头

宝石与石头题目 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。示例 1:输入: J = "aA", S = "aAAbbbb" 输出: 3示例 2:输入: J = "z", S = "ZZ" 输出: 0注意: S 和 J 最多含有50个字母。J 中的字符不重复。暴力求解直接

2020-06-02 09:16:30 199

原创 字母异位词分组

字母异位词分组题目给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"]输出: [ ["ate","eat","tea"], ["nat","tan"], ["bat"] ] 说明:所有输入均为小写字母。不考虑答案输出的顺序。排序解法先将元素排序再转换为字符串str,将排序后的字符串str作为字典的键值;遍历所有元素,做同样的处理,按键值存储元素。pyth

2020-06-01 13:05:10 145

原创 哈希表

哈希表定义​ 哈希表也叫散列表,是根据关键码值(Key value)而直接进行访问的数据结构,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数f(key)f(key)f(key)叫做散列函数,存放记录的数组叫做散列表。​ 给定表M,存在函数f(key)f(key)f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)f(key)f(key)为哈希(Hash)

2020-05-31 08:49:13 266

原创 两数之和

两数之和题目给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]代码实现暴力求解def twoSum(nums: (List[int]), target: int) -> L

2020-05-30 09:40:29 155

原创 数组列表的中心索引

求取数组列表的中心索引题目:给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回-1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。示例1:输入: nums = [1, 7, 3, 6, 5, 6]输出: 3解释: 索引3 (nums[3] = 6) 的左侧数之和(1 + 7 + 3 = 11),与右侧数之和(5 + 6 =

2020-05-30 09:27:02 161

原创 冒泡算法python动态演示

冒泡算法python动态演示冒泡算法文章目录冒泡算法python动态演示冒泡算法冒泡算法python实现算法动态演示演示图片保存冒泡算法(后冒法):1、每次只确定一个元素;2、且只有相邻的元素进行交换;3、两个相邻元素比较,如果该元素比它后面相邻的元素小,则交换两元素位置,一轮结束,确定一个元素位置已排好序列的最前面;4、下轮从未排好序的元素开始下一轮排序,直到所有元素都排好。优化:1、如果不再发生交换时则停止循环;2、在每轮结束后记录最后一次交换的下标以便于减少遍历次数;3、每次进

2020-05-29 14:27:56 399

原创 机器学习绪论

机器学习绪论​ 今天开始机器学习理论知识学习,希望能坚持到最后,这里的理论知识是基于 周志华—机器学习 一书 的。​ 个人认为机器学习其实就是从现有的数据中通过统计、假设检验等手段获得一个模型,然后使用该模型去预测新的数据(未参与训练),也即是从模型中的假设空间中找到符合新数据特征的假设,但可能找到多条假设,因此需要我们给它对某种假设的偏好(归纳偏好),最终找的符合偏好的假设就是我们的预测结果。​ 通常使用‘奥卡姆剃刀’原则来确定‘正确的’偏好,一般来说,‘奥卡姆剃刀’是说“若有多个

2020-05-27 16:01:43 117

原创 数组结构--数组(一)

数组结构–数组(一)文章目录数组结构--数组(一)数组的特点数据的基本操作插入操作查找操作修改操作删除操作数组的特点数组是有限个相同类型的元素所组成的有序集合。数组是一种线性的物理结构,存储方式为顺序存储,访问方式是随机访问。利用下标查找元素的时间复杂度为 O(1) ,插入、删除元素的时间复杂度为 O(n) 。数组适用于读操作多,写操作少的场景数据的基本操作数组的基本操作包括增、删、查、改四种基本的操作。注: 这里假设数组都是无序的插入操作插入可以分为尾部新增和中间插入两种情况,中间

2020-05-27 00:27:14 254

原创 Hailstone序列

Hailstone序列定义Hailstone序列定义:​ Hailstone(n)={{1},n <=1{n}∪Hailstone(n/2),if n is even{n}∪Hailstone(3n+1),if n is oddHailstone(n)=\begin{cases}\{1\},&\text{$n$ <=1}\\\{n\}\cup Hailstone(n/2),&\text{if

2020-05-26 19:21:49 1399

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除