自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

桔梗的眼泪博客

专注于AI算法

  • 博客(145)
  • 收藏
  • 关注

原创 leetcode 5. Longest Palindromic Substring

def longestPalindrome(s): # 建立DP array size is len(arr)*len(arr) dp = [[False]*len(s) for i in range(len(s))] # 初始化 start end 指针 StartIndex = 0 EndIndex = 0 # dp算法填充表格,start ...

2019-11-01 21:03:04 198

原创 openCV第十六课

图像二值化https://www.cnblogs.com/ssyfj/p/9272615.html为参考#File Name : 第十六课.py#图像二值化import cv2 as cvimport numpy as npfrom matplotlib import pyplot as pltdef threshold_demo(image): # 全局阈值...

2019-07-24 16:03:20 214

原创 openCV第九课

#File Name : 第九课.py# 反应图片信息的直方图 三通道的折线图import cv2 as cvimport numpy as npfrom matplotlib import pyplot as pltdef plot_demo(image): plt.hist(image.ravel(),256,[0,255],color='red') #多维降为为...

2019-07-16 21:05:22 213

原创 openCV第八课

图像去噪的方法很多,如中值滤波,高斯滤波,维纳滤波等等。但这些降噪方法容易模糊图片的边缘细节,对于高频细节的保护效果并不明显。相比较而言,bilateral filter双边滤波器可以很好的边缘保护,即可以在去噪的同时,保护图像的边缘特性。双边滤波(Bilateral filter)是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折衷处理,同时考虑空域信息和灰度相似性,达到保边...

2019-07-16 18:52:41 284

原创 openCV第六课

#模糊#图像模糊(图像平滑)#使用低通滤波器可以达到图像模糊的目的。这对与去除噪音很有帮助。其实就是去除图像中的高频成分import cv2 as cvimport numpy as npfrom matplotlib import pyplot as pltdef blur1_demo(img): kernel = np.ones((5,5),np.float32)/...

2019-07-16 14:49:32 164

原创 openCV第五课 ROI 与 泛宏填充

#File Name : 第五课.pyimport cv2 as cvimport numpy as np# 泛宏填充def fill_color_demo(image): copyImg = image.copy() h,w = image.shape[:2] mask = np.zeros([h+2,w+2],np.uint8) # 尺寸要注意 pr...

2019-07-16 10:12:46 217

原创 openCV第三课

#File Name : 第三课.pyimport cv2 as cvimport numpy as npdef extract_object_demo(): capture = cv.VideoCapture('G:/openCV/shengguoqi.mp4') while True: ret,frame = capture.read() ...

2019-07-08 21:09:31 119

原创 openCV第二节课

#File Name : 第二课.pyimport cv2 as cvimport numpy as npdef access_pixels(image): # 获取图像 修改像素值 print(image.shape) height = image.shape[0] width = image.shape[1] channels = image....

2019-07-08 19:29:48 109

原创 Manacher 算法

【题目】  给定一个字符串str,返回str中最长回文子串的长度。要求时间复杂度O(N)。【进阶题目】  给定一个字符串str,想通过添加字符的方式使得str整体都变成回文字符串,但要求只能在str的末尾添加字符,请返回在str后面添加的最短字符串。要求时间复杂度O(n)。#File Name : manacher 算法.pydef manacherString(stri...

2019-07-06 12:43:19 242

原创 KMP算法python实现

#File Name : KMP算法.pydef getIndexOf(str1,str2): #判断,str2是否在str1中 def getNextArray(strS): #用于返回strS中 每个位置匹配度的数组 if len(strS) == 1: return [-1] nextArr = [...

2019-07-06 09:29:20 404

原创 最小生成树prim算法python实现

#Editing time : 2019/7/3 20:40#File Name : 最小生成树prim算法.pyfrom heapq import *class Node(object): passclass UnionFindSet(object): def __init__(self,nodes): self.fatherDict = {} ...

2019-07-03 21:15:09 1149

原创 最小生成树kruskal算法python实现

#File Name : 最小生成树kruskal算法.py#思路 边权重从小到大排序 从权重小的边开始#不形成回路就要,不然不要。直至包含所有点#File Name : 并查集.py# 并查集结构from heapq import *class Node(object): passclass UnionFindSet(object): def __init_...

2019-07-03 20:39:31 1932

原创 图应用拓扑排序算法python

#File Name : 图的拓扑排序算法.py#拓扑排序:在任何一个节点之前,所依赖的节点都做完#找到所有入度为0的节点,这些节点代表不需要任何的依赖#删除这些,又有新的入度为0的节点,删掉代表已经做完#要求有向图且不能有环,有环代表循环依赖from queue import Queueclass Node(object): def __init__(self,valu...

2019-07-03 19:31:45 529

原创 图的深度优先遍历python实现

#File Name : 图的深度优先遍历.py#1 利用栈实现#2 从源节点开始把节点按照深度放入栈,然后弹出#3 每弹出一个点,把该节点下一个没有进过栈的邻接点放入栈#4 直到栈变空def dfs(node): if node is None: return #建立空栈、建立空集合 stack = [] nodeSet = set...

2019-07-03 17:12:55 2594

原创 图的宽度遍历python实现

#File Name : 图 宽度遍历.pyfrom queue import Queueclass Node(object): def __init__(self,value=None): self.value = value #节点的值 self.come = 0 #节点入度 self.out = 0 #节点出度 ...

2019-07-03 15:36:51 217

原创 图结构的实现python

#File Name : 图结构的实现.py# 设置节点类型#图中的度:所谓顶点的度(degree),就是指和该顶点相关联的边数。#在有向图中,度又分为入度和出度。#入度 (in-degree) :以某顶点为弧头,终止于该顶点的弧的数目称为该顶点的入度。#出度 (out-degree) :以某顶点为弧尾,起始于该顶点的弧的数目称为该顶点的出度。class Node(object...

2019-07-01 21:27:34 686

原创 数组中任选值相加得到目标值

#File Name : 任意数组中的数加出目标值.py#给定一个数组,和一个数aim ,任意选择arr中的数字# 不重复选择,相加 若可以等于aim 则返回truedef process(arr,i,sum,aim): # arr 数组 # i 当前位置 数组的数的位置 # sum 当前的和 要之前的数和不要之前的数的和是不一样的 # aim 固...

2019-07-01 19:41:40 1565

原创 母牛生小牛问题递归python实现

#File Name : 母牛问题.py# 开始有一只母牛 母牛每年可以生一只母牛# 新出生三年后才能每年生一只母牛 假设都不会死# 第n年有几只def cowNum(N): if N<=1: return 1 return cowNum(N-1)+cowNum(N-3)a = cowNum(7)print(a)# f(n) = f(n...

2019-07-01 15:50:40 4149

原创 汉诺塔问题(python)

#File Name : 汉诺塔问题.py# from to help 三个杆子 1~N 在from上# 先把1~N-1 从from到help上 借助了help 给最后的N腾出位置移动# N移动到to上# 1~N-1 再去to上def process(n,from1,to1,help1): if n==1 : print('move 1 fro...

2019-07-01 14:48:39 348

原创 递归解决N!问题

# 要解决N规模问题,要解决N-1规模的问题,一直到解决1规模的问题# 依赖关系,F(N)=N*F(N-1)def f(n): if n ==1: return 1 return n*f(n-1)print(f(3))# f3 = 3*f2 = 3*2*f1 = 3 *2 *1...

2019-07-01 11:36:33 245

原创 会议日程安排问题python

#File Name : 会议室日程安排问题.pyclass Program(object): def __init__(self,start,end): self.start = start self.end = enddef bestArrange(programs,start_time): """programs 为项目列表 ...

2019-06-30 18:26:09 1847

原创 堆解决项目收益问题python

自定义比较器的另一种方法from heapq import * #默认小根堆heap=[]class minCostNode(object): def __init__(self,c,p): self.c = c self.p = p def __lt__(self, other): # 运算符重载 好让自己定义的...

2019-06-30 17:16:59 193

原创 分金条花费铜板数最少问题与heapq模块的使用

#File Name : 分金条问题(哈夫曼编码).pyfrom heapq import *#默认小根堆def less_money(arr): heap = [] for i in range(len(arr)): heappush(heap,arr[i]) while len(heap)>1: item1 = hea...

2019-06-30 14:46:55 361

原创 前缀树python实现

#File Name : 前缀树.pyclass TrieNode(object): def __init__(self): self.path = 0 #路过此节点几个 self.end = 0 #以此为结尾的几个 self.map = [None for i in range(26)] ...

2019-06-28 18:01:16 2551 1

原创 岛问题python实现

def countLands(arr): if not arr or not arr[0]: return 0 N = len(arr) #行数 M = len(arr[0]) #列数 res = 0 for i in range(N): for j in range(M): if arr[i][j...

2019-06-27 22:23:47 866

原创 并查集python实现

#File Name : 并查集.pyclass Node(object): pass#节点里面放啥都行 整形 字符串class UnionFindSet(object): def __init__(self,nodes): self.fatherDict = {} # key node value father 一层一层向上找 ...

2019-06-27 21:05:20 1148

原创 布隆过滤器

有时候我们需要判断一个元素是否在一个集合中。比如,在字处理软件中,需要检查一个单词是否拼写正确(也就是要判断它是否在已知的字典里);在警察系统中,一个嫌疑人的名字是否出现在嫌疑名单上;在网络爬虫里,一个网址是否已经被访问过,等等。最直接的方法就是讲集合中的元素存在计算机中,遇到一个新元素时,将它和集合中的元素直接比较即可。一般来讲,计算机中的集合是用哈希表(Hash Table)来存储的。它的...

2019-06-26 11:44:28 8065 1

转载 一致性hash

一、前言在解决分布式系统中负载均衡的问题时候可以使用Hash算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求(并维护这些请求的信息),起到负载均衡的作用。但是普通的余数hash(hash(比如用户id)%服务器机器数)算法伸缩性很差,当新增或者下线服务器机器时候,用户id与服务器的映射关系会大量失效。一致性hash则利用hash环对其进行了改进。二、一致性Ha...

2019-06-26 11:42:47 193

原创 设计RandomPool结构python实现

【题目】  设计一种结构,在该结构中有如下三个功能:  1、 insert(key):将某个key加入到该结构,做到不重复加入  2、delete(key):将原本在结构中的某个key移除  3、getRandom():等概率随机返回结构中的任意一个key  要求所有的操作时间复杂度都是O(1)。【基本思路】  对每个元素都加上一个下标,第一个元素的下标为0,每加...

2019-06-26 10:45:15 163 2

原创 求完全二叉树的节点python实现

def getHeight(head,level): while head: level+=1 head = head.left return level-1 def bs(head,level,height): if level == height: ret...

2019-06-26 09:27:15 304

原创 判断是否完全二叉树python

#File Name : 是否为完全二叉树.pyclass Node(object): def __init__(self,val=None): self.val = val self.left = None self.right = Nonedef isCBT(head): if not head: retur...

2019-06-25 19:52:15 2564

原创 判断是否为搜索二叉树python实现

搜索二叉树为中序遍历升序判断通过改变非递归版本的打印行为部分即可import sysclass Node(object): def __init__(self,val=None): self.val = val self.left = None self.right = None#非递归版本#中序遍历把打印的时机换成比较...

2019-06-25 17:09:48 1091 1

原创 判断二叉树为平衡二叉树python实现

#平衡二叉树:树中任何一个节点它左子树与右子树的高度差不超过1#利用递归手机信息# 1 列出可能性 2 整理出返回类型# 3 整个递归按照同样的结构,得到子树的信息 整合子树# 的信息、加工出我的信息,往上返回、要求结构一致class Node(object): def __init__(self,val=None): self.val = val ...

2019-06-25 09:59:11 1314

原创 二叉树的序列化与反序列化

class Node(object): def __init__(self,val=None): self.val = val self.left = None self.right = Nonedef serialByPre(root): if not root: return '#!' # 此处是递归...

2019-06-24 15:20:32 229

原创 寻找二叉树的后继节点

后继节点为中序遍历中一个节点的下一个节点class Node(object): def __init__(self,val=Node): self.val = val self.left = None self.right = None self.parent = Nonedef getSuccessorNode(no...

2019-06-24 10:06:03 127

原创 直观打印二叉树python实现

class Node(object): def __init__(self,val=None): self.val = val self.left = None self.right = Nonedef printTree(root): if not root : return print('Binary...

2019-06-20 15:09:28 1816

原创 二叉树的遍历(非递归)

class Node(object): def __init__(self,val=None): self.val = val self.left = None self.right = Nonedef preOrderUnRecur(head): print('pre-order: ') if head!=None:...

2019-06-20 13:30:09 79

转载 链表相交的一系列问题python实现

【题目】  在本题中,单链表可能有环,也可能没环。给定两个单链表的头节点head1和head2,这两个单链表可能相交,也可能不相交。请实现一个函数,如果两个链表相交,请返回相交的第一个节点;如果不相交,返回null即可。要求,时间复杂度O(N+M),空间复杂度O(1)。【基本思路】  该问题可以分解成三个子问题:    问题一:如何判断一个链表是否有环,如果有的话返回第一个...

2019-06-18 10:18:39 240

原创 复制含有随机指针的链表python实现

class RandNode(object): def __init__(self,val=None): self.val = val self.rand = None self.next = Nonedef CopyListWithRandom(head): if head == None: return N...

2019-06-17 10:11:26 298

原创 单链表左边中间相等右边大的形式python实现

# 第一种 将节点的值放入数组中 快排调整 再重新链接class Node(object): def __init__(self,val=None): self.val = val self.next = Nonedef smallequalbigger(head,num): if head == None or head.next ==...

2019-06-16 12:27:08 171

空空如也

空空如也

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

TA关注的人

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