自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 资源 (3)
  • 收藏
  • 关注

原创 编程,学到什么程度才能胜任工作?

        好多小伙伴一直都有这样的一个疑问,学习编程究竟学成什么样才能出去找工作,才能胜任工作,总感觉学习编程是个无底洞,知识学也学不完,其实这样的想法是错误的。我问大家这样一个问题,大家从小大这么长时间了?你的语文能力怎么样?所有的中国汉字你都会写了吗?有些汉字不会写,难道我们就生活不下去了吗?学习编成的过程也是这样,只要能把你眼前这个问题解决就可以了     &nb

2020-08-31 11:28:21 2159

原创 python告白代码,只属于程序员的浪漫

写在前头:          不知何时,不知何因,程序员这个行业成为大家茶余饭后取乐的无辜群体。只要说到程序员,脑海中就浮现出刻板印象,标配穿搭:格子衫,牛仔裤,黑框眼镜。当然秃顶也是必须的,更狠的吐槽还有邋里邋遢,不懂浪漫,不知人情世故!开始可能只是幽默玩笑,后面慢慢就越传越多,大家便信以为真!可是程序员真的是这样吗?随着现在编程这个行业...

2019-11-16 20:46:50 11876 7

原创 python代码直接生成可执行exe文件

前言:python中有一个很厉害的库可以直接将写好的python代码打包成可执行的.exe文件,生成好的文件不需要python运行环境和pycharm等IDE就可以直接双击运行,是不是很厉害呢!这样你就可以开发一些简单的小游戏直接发给你的小伙伴们就可以玩了,你的小伙伴一定会对你刮目相看。也可以写一段告白代码发给你的女朋友,你的女朋友肯定会觉得你很厉害,不就水到渠成了嘛!哈哈。1.首先安裝 p...

2019-11-11 19:53:17 7614 5

原创 有点用之——Mysql

1.b树和b+树的区别是什么b+树是b树的升级版,b树非叶子节点和叶子节点都会存储数据,而b+树只有叶子节点才会存储数据,而且叶子节点存储的数据都是双向指针指向的,是有顺序的,一般树的高度在2到4层,树的高度直接影响I/O读写速度,3层树结构能存20G数据,4层可以存储几十T数据,存储单位为页,一页存储16kb数据,每读取一页数据为16kb2.什么是最左前缀原则最左前缀原则是在复合索引中是否走索引的一个名词叫法,有一个复合索引,abc,查询,a,ab,abc都会走索引,但是查询b,c,bc都不会

2022-05-03 16:07:01 629

原创 有一点用——python正则匹配

1. ^ 匹配以当前开始,$ 匹配以当前结束2. *匹配0次或多次,+匹配1次或多次,?匹配0次或一次,.匹配除换行符意外的所有字符3. [a-z]匹配a-z, [ ^a-z]不匹配a-z4. (?=),限定规则的匹配,'Windows(?=95|98|NT|2000)能匹配’Windows2000中的Windows,不能匹配’Windows300中的’Windows5. (?!=)限定规则反向匹配,去4相反6. \b,匹配字符串边界7. \d匹配一个数字,\n匹配一个换行符,\r匹配一个回

2022-04-15 14:28:19 882

原创 有点用——Mongodb(1)

1.Mongdb是一个面向文档的非关系型数据库2.Mongdb中的集合=表,文档=行数据,文档是Mongdb的核心概念,文档就是键值对的有序集合3.文档中的数据没有固定的类型和大小,没有固定的模式,添加删除字段更容易4.Mongdb的设计采用横向扩展,面向文档的数据模型使它很容易的在多台服务器之间进行数据分割5.Mongdb支持二级索引,允许多种快查询,提供唯一索引,复合索引,地理空间索引和全文索引6.Mongdb可以设置集合的大小,这样就可以存一些日志文件,自动删除之前不用的日志7.Mongd

2022-04-02 17:09:12 180

原创 关系型数据库和非关系型数据库的区别

1. 关系型数据库支持多个表之间连接查询(join),非关系型数据库不支持连接查询2. 关系型强调数据之间的强关联型,并支持事物来确保数据的增删改查的强一致性,而非关系型数据库对数据的事物则支持的不是很好3. 关系型数据库不灵活,是一种二维的数据结构,而且对一行的数据格式类型要求很高,非关系型数据库数据格式则更灵活,数据字段类型也很灵活4. 非关系型数据库比关系型数据库更容易扩展5. 非关系型数据库对大量的并发读写支持的更好,性能更高,而关系型由于IO瓶颈,高并发读写速度慢,支持不好6. 对于数据

2022-03-31 10:02:38 12422 1

原创 TCP/IP网络协议

1.国际标准化组织提出的OSI模型,开放式系统互联通信参考模型(英语:Open System Interconnection Reference Model,缩写为 OSI),简称为OSI模型(OSI model),一种概念模型,是一个试图使各种计算机在世界范围内互连为网络的标准框架。算法一种顶层架构设计,比如盖楼有个图纸,大家一看都明白,OSI便是制定统一规范,方便网络传输中沟通协作2.OSI模型有七层:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层3.实际应用中用到的是TCP/IP协议四

2021-11-02 13:54:18 203

原创 计算机网络面试题总结

       计算机网络相关的问题面试过程中问的还是挺多的,比如TCP/IP,UDP各种网络协议,TCP连接三次握手,四次挥手…网络这块知识偏理论一些,问题答案会随着你了解的深入可以一直扩展,所以多了解一些理论知识,也是你编程路上的基石,让你更有底气和自信。了解深入的多了,说的多了,也就能拉开你和别人的差距从而脱颖而出,整理了一些计算机网络相关的知识点,希望可以给大家带来帮助,一起学习成长!  1.说说OSI

2021-08-09 16:04:18 118

原创 Nginx快速手册(2)

1.nginx实现负载均衡配置,在nginx.conf中进行配置1.在http块中加入upstream实现负载均衡服务器列表http{ upstram myserver { server 192.168.17.129:8080; server 192.168.17.129:8081; }}2.在http块的server块中加入server_nameserver{ server_name 192.168.17.129}3.在http块的server块的loc

2021-08-02 10:00:04 125

原创 Nginx快速手册(1)

1.什么是nginxnginx是一个高性能的HTTP和反向代理web服务器,优秀的高并发性能,占用内存少,使它成为现在几乎所有项目部署都会采用的服务器,对于nginx来说,它对于高并发请求是专业的。所以如果想要自己技术有所提升,nginx当然是你可以吹一吹的技术啦!下面就总结一下nginx里常用的理论和部署配置,可能会分几个系列去写,浓缩的都是精华,发车啦 2.正向代理和反向代理要了解web服务器,要搞懂两个概念,正向代理和反向代理,正向代理就是你想访问国外一些羞羞的网站,你又不能直接访问

2021-08-02 09:54:40 110

原创 vim常用命令

2021-06-24 14:57:47 77 1

原创 算法:合并两个有序列表

1.给定两个有序列表,l1=[1,5,7,10],l2=[2,3,4,11],把他们合并成一个有序列表2.方法一:def merge_sort(l1,l2): i,j = 0,0 result = [] while i < len(l1) and j <len(l2): if l1[i]< l2[j]: result.append(l1[i]) i += 1 else:

2021-05-29 17:04:00 817

原创 python对数组所有可能的组合进行迭代

对列表中所有可能的组合进行迭代解决这个问题,可以使用itertools模块中的函数,第一个是itertools.permutations(),他接受一个元素集合,将其中所有的元素重新排列为所有可能的情况,并已元组形式返回代码如下:from itertools import permutationsitems = ['a','b','c']for i in permutations(items): print(i)结果:('a', 'b', 'c')('a', 'c', 'b'.

2021-05-29 15:14:21 531

原创 算法:如何统计字符串中连续的重复字符个数

1.用递归的方法实现一个求字符串中连续出现相同字符的最多次数,例如‘a aabbcc’中连续出现‘a‘的次数为3,‘b’为22.代码如下:def getMaxDuppChar(s,startIndex,curMaxLen,maxLen): if startIndex == len(s)-1: return max(curMaxLen,maxLen) if list(s)[startIndex] == list(s)[startIndex + 1]: re

2021-05-19 21:17:32 3493

原创 算法:如何实现字符串的匹配

1.给定主字符串S与模式字符串P,判断P是否是S的子串,如果是,那么找出P在S中第一次出现的小标2.代码如下:def match(s,p): if s == None or p == None: return None slen = len(s) plen = len(p) if slen < plen: return -1 i, j = 0, 0 while i < slen and j < plen:

2021-05-07 22:20:31 156

原创 算法:如何消除字符串的内嵌括号

1.给定一个如下格式的字符串,(1,(2,3),(4,(5,6),7)),括号内的元素可以是数字,也可以是另一个括号,实现一个算法消除嵌套的括号,例如把上面的表达式变成(1,2,3,4,5,6,7),如果表达式有误,那么报错2.代码如下:def removeNestedPare(strs): if strs == None: return None #用来记录不匹配的(出现的次数 Parentheses_num = 0 if list(strs)[0] !

2021-05-06 20:17:06 252

原创 算法:如何判断两个字符串为换位字符串

1.换位字符串是指组成字符串的字符相同,但位置不同,例如:由于字符串“aaaabbc”与字符串‘abcbaaa’就是由相同的字符组成的,因此他们是换位字符串2.代码如下:def compare(s1,s2): result = True bCount = [None] * 256 for i in range(256): bCount[i] = 0 for i in range(len(s1)): bCount[ord(list(s1)[i

2021-04-29 20:52:23 521

原创 算法:如何对磁盘分区

1.有n个磁盘,每个磁盘大小为D[i](i=0…N-1),现在要在这N个磁盘上‘顺序分配’M个分区,每个分区大小为P[j] (j=0…M-1),顺序分配的意思是:分配一个分区P[j]时,如果当前磁盘剩余空间足够,则在当前磁盘分配,如果不够,则尝试下一个磁盘分配,直到找到一个磁盘D[k+1]可以容纳该分区,分配下一个分区P[j+1]时,则从当前磁盘D[i+k]的剩余空间开始分配,不使用D[i+k]之前磁盘未分配的空间,如果这M个分区不能在这N个磁盘完全分配,则任务分配失败,举例:[120,120,120],分

2021-04-21 21:53:41 319

原创 算法:如何对任务进行调度

1.假设有一个中央调度机,有n个相同的任务需要调度到m台服务器上去执行,由于每台服务器配置不一样,因此,服务器执行一个任务所花费的时间也不同,第i个服务器执行一个任务所花费的时间也不同。现在假设第i个服务器执行一个任务所需要的时间为t[i]。例如:有两个执行机a与b,执行一个任务分别需要7min,10min,有6个任务待调度,如果平分这6个任务,即a与b各三个任务,则最短需要30min执行完,如果a分4个任务,b分2个任务,则需要28min执行完。请设计一个调度算法,使得所有的任务完成所需要的时间最短。输入

2021-04-21 21:26:28 1017

原创 算法:如何从三个有序数组中找出他们的公共元素

1.给定以非递减排序的三个数组,找出这三个数组中的所有公共元素,例如,给出三个数组,arr1 = [,2,5,12,20,45,85],arr2=[16,19,20,85,200],arr3=[3,4,15,20,39,72,85,190],那么这三个数组的公共元素为[20,85]2.解析:方法一,可以找出两个数组的交集存为临时数组,再求临时数组与第三个数组的交集。方法二:假设当前遍历的三个数组元素分别为arr1[i],arr2[j],arr3[k],则存在以下几种可能性,(1)如果arr[i],arr

2021-04-17 21:26:12 1431

原创 算法:如何寻找最多的覆盖点

1.坐标轴上从左到右依次的点为a[0],a[1],a[2]到a[n-1],设一根木棒的长度为L,求L最多能覆盖坐标轴的几个点?2.本题要求满足a[j]-a[i]<=l并且a[j+1]-a[I]>L,这两个条件的j与i中间的所有点数中最大值,即j-i+1最大,可以直接从左到右扫描,使用两个索引i,和j,i从0开始,j从位置1开始,如果a[j]-a[i]<=L,则j+前进,并记录中间经过的点的个数,如果a[j]-a[i]>l,则j-回退,覆盖点个数-1,回到刚好满足条件的时候,将满足条

2021-04-15 21:43:01 572

原创 算法:如何在有规律的二维数组中进行高效的数据查找

1.在一个二位数组中,每一行都按照从左到右的递增顺序排序,每一列都按照从上到下递增的顺序排序,请实现一个函数,输入这样的一个二位数组和一个整数,判断数组中是否含有该整数,例如下面二位数组就是符合这种约束条件,如果在这个数组中查找数字7,由于数组中含有该数字,则返回True,如果在这个数组中查找数字5,由于数组中不含有该数字,则返回False.1 2 8 92 4 9 124 7 10 136 8 11 152.分析:一

2021-04-15 21:04:34 389

原创 算法:如何求数组中两个元素的最小距离

给定一个数组,数组中含有重复元素,给定两个数字num1 和num2,求这两个数字在数组中出现的位置的最小距离代码如下:def mindistance(arr,num1,num2): if arr == None or len(arr) <= 0: return mindist = 2 ** 32 dist = 0 for i in range(len(arr)): if arr[i] == num1: fo.

2021-04-13 19:46:11 309

原创 python发送邮件脚本

1.发送邮件主要用到连个协议:· SMTP协议:简易邮件传输协议,主要用于发送邮件,25端口· IMAP协议:主要用于从邮件服务器上获取邮件信息,下载邮件 143端口2.邮件发送过程中都是加密的,传输中主要用到的安全协议:TLS 传输层安全,用于SMTP加密SSL 安全端口层,用于IMAP加密3.发送邮件代码:import smtplibfrom email.mime.text import MIMETextfrom email.header import Headerdef

2021-04-13 15:24:04 85

原创 算法:如何找出数组中丢失的数

1.给定一个由n-1个整数组成的未排序的数组序列,其元素都是1到n中的不同整数,请写出一寻找数组序列中缺失整数的线性时间算法2.代码如下:def get_num(array): if array == None or len(array) <= 0: return None suma = 0 sumb = 0 for i in range(len(array)): suma += array[i] if array[i

2021-04-12 21:06:10 831

原创 算法:如何在二叉树中找出与输入整数相等的所有路径

1.分析:可以通过遍历二叉树找出所有路径,然后判断各条路径上所有节点的值的和是否与给定的整数相等,如果相等,打印出这条路径,具体实现方法可以通过对二叉树进行先序遍历来实现,实现思路为:对二叉树进行先序遍历,把遍历路径记录下来,当遍历到叶子节点时,判断当前的路径上所有节点的数据的和是否等于给定整数,如果相等则输出路径信息2.代码如下:class Node(): def __init__(self): self.data = None self.left = None

2021-04-09 09:00:18 381 1

原创 算法:如何判断一个数组是否是二叉查找树后续遍历的序列

1.输入一个整数数组,判断该数组是否是某二叉查查找树的后续遍历。2.分析解答:二叉查找树的特点是任意结点的值都比该结点的左子树的值大,比右子树值小,根据这个特点以及后续遍历的特点,这个序列的最后一个结点一定是树的根结点,3.代码如下:def IsAfterOrder(arr,start,end): if arr == None: return False #数组的最后一个结点必定是根结点 root = arr[-1] #找到第一个大于root的值,那么前

2021-04-06 22:51:20 262

原创 算法:如何判断两颗二叉树是否相等

1.两可二叉树相等是指这两颗二叉树有着相同的结构,并且在相同位置上的结点有相同的值。2.分析解答:两颗二叉树相等,节点的值相等,左右子树也完全相等,可以使用递归方法实现3.代码如下:class Bitree(): def __init__(self): self.data = None self.left = None self.right = None#判断两颗二叉树是否相等def isEqual(root1,root2): if

2021-04-06 20:30:59 5793

原创 算法:如何求一棵二叉树的最大子树和

1.给定一棵二叉树,它的每个节点都是正整数或负整数,如何找到一棵子树,使得它所有节点的和最大2.分析:要求一棵二叉树的最大子树和,最容易想到的办法就是针对每棵子树,求出这棵子树中所有节点的和,然后从中找出最大值,恰好二叉树的后续遍历就能做到这一点,在对二叉树进行后续遍历过程中,如果当前遍历的节点的值与其左右子树和的值相加的结果大于最大值,则更新最大值3.代码如下:class Btree(): def __init__(self): self.data = None

2021-04-05 19:52:27 799

原创 算法:如何从顶部开始逐层打印二叉树节点数据

1.给定一颗二叉树,要求逐层打印二叉树节点的数据2.代码如下:from collections import dequeclass BiTNode: def __init__(self): self.data = None self.lchild = None self.rchild = None#把有序数组转化为二叉树def arraytotree(arr,start,end): root = None if end

2021-04-05 12:11:38 169

原创 算法:如何把一个有序整数数组放到二叉树中

1.如果把一个有序的整数数组放到二叉树中,那么构造出的二叉树必定是有序二叉树,所以,取数组中间元素作为节点,将数组分成左右两部分,对数组的两部分递归的方法分别构建左右子树2.代码如下:class BiTNode(): def __init__(self): self.data = None self.lchild = None self.rchild = None#把有序数组转换为二叉树def arraytotree(arr,start,en

2021-04-05 00:20:45 532

原创 算法:如何从数组中找出满足a+b=c+d的两个数对

1.给定一个数组,找出数组中是否有两个数对(a,b)和(c,d),使得a+b=c+d,其中a,b,c,d是不同的元素,如果有多个答案,打印任意一个即可。例如给定数组:[3,4,7,10,20,9,8],可以找到两个数对,(3,8)和(4,7)2.解题思路:可以使用字典法,算法的主要思路是:以数对为单位进行便利,在遍历过程中,把数对和数对的值存储在字典中,(健为数对的和,值为数对),当便利到一个健值对时,如过它的和在健值对中已经存在,那么就找到了满足条件的健值对3,代码如下:#用来存储数对class

2021-04-04 20:35:29 1129

原创 kairosdb时序数据库

1.什么是时序数据库:时序数据库随时间存储值,可以一分钟打一个点,且有前端页面可以直接查看存储数据的趋势图,kairosdb查询数据和插入数据都要发送post请求,与关系型数据库相比,kairosdb会将多个列名折叠成一行来表示一个时间段。通过多个tag来定位一条数据,时序数据库能及时存储和检索记录,通常,各种数据库通过索引减少磁盘I/O来实现快速检索,索引只有在足够小以适合内存时才有效,因为如果索引不足,则必须将其分页到需要I/O的磁盘上,由于索引的大小与表中的行数成正比,所以时序数据库比关系型数据库

2021-03-31 10:57:24 616

原创 算法:如何从给定的车票中找出旅程

1.给定一趟旅途中所有的车票信息,根据这个车票信息找出这趟旅程的线路,例如给定下面的车票:(‘西安’到‘成都’),(‘北京’到‘上海’),(‘大连’到‘西安’),(‘上海’到‘大连’)。那么可以得到旅程路线为:北京->上海,上海->大连,大连->西安,西安->成都,假定给定的车票不会有坏,一个城市只作为终点不会作为起点2.分析:一般而言可以使用拓扑排序进行解答。根据车票信息构建一个图,然后找出这张图的拓扑排序序列,这个序列就是旅程路线。但这种方法效率不高,它的时间复杂度为O(n),

2021-03-30 22:12:34 148

原创 算法:如何实现LRU缓存方案

1.LRU算法,意思是最近最少使用,LRU缓存就是使用这种原理实现的,简单的说缓存一定量的数据,当超过设定的阈值时就把一些缓存过期的数据删除掉。常用于页面置换算法,是虚拟页式存储管理中常用的算法。2.我们可以使用两个数据结构实现一个LRU缓存· 使用双向链表实现的队列,队列的最大容量为缓存的大小。在使用过程中,把最近使用的页面移动到队列头,最近没有使用的页面将被放在队列尾的位置· 使用一个哈希表,把页号作为键,把缓存在队列中的节点的地址作为值,只需要把这个页对应的节点移动到队列的前面,如果需要的页面

2021-03-30 21:19:55 483

原创 python如何设计一个排队系统

1.如何设计一个排队系统,能够让每个进入队伍的用户都能看到自己在队列中所处的位置和变化,队伍可能随时有人加入和退出,当有人退出影响到用户的位置排名时需要及时反馈到用户2.排队系统不仅要实现队列的常见的入队和出队功能,而且还要实现队列的中任意的一个元素都可以随时出队列,且出队列需要更新队列用户位置的变化。3.代码如下:from collections import dequeclass User: def __init__(self,id,name): #唯一标识一个用户

2021-03-25 22:51:22 2814

原创 python算法:如何用两个栈模拟队列操作

class Stack(): def __init__(self): self.items = [] def empty(self): return len(self.items) == 0 def size(self): return len(self.items) def peek(self): if not self.empty(): return self.items[-1]

2021-03-23 21:28:24 93

原创 python算法:如何用O(1)的时间复杂度求栈中最小元素

class Stack: def __init__(self): self.items = [] def empty(self): return len(self.items) == 0 def size(self): return self.items def peek(self): if not self.empty(): return self.items[-1]

2021-03-22 23:47:50 214

原创 python算法题:如何根据入栈序列判断可能的出栈序列

1.输入两个序列,其中一个序列表示栈的push(入)序列,判断另一个序列有没有可能是对应的pop(出)序列class Stack: def __init__(self): self.item = [] def empty(self): return len(self.item) == 0 def size(self): return len(self.item) #返回栈顶元素 def peek(self):

2021-03-22 23:13:47 712

前端css学习ppt,总结详细

需要PPT模板的可以下载

2021-02-22

python生成动态二维码.py

python代码生成动态二维码,自己准备动态gif图,和想要二维跳转的目标地址,用这个代码便可生成动态二维码

2019-12-10

验证码图片降噪源代码.ipynb

python基于openvc解决简单验证码识别的问题,对图像进行识别,灰度化处理,8邻域过滤,最终返回处理好的图片

2019-11-11

空空如也

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

TA关注的人

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