自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【二叉树】利用最小堆来获取最大元素的k个

import heapq"""二叉树 先序、中序、后序遍历 先(根)序:先处理根,之后是左子树,然后是右子树 中(根)序:先处理左子树,然后是跟,然后是右子树 后(根)序:先处理左子树,然后是右子树,最后是根 val,left指针,right指针栈 完全二叉树,有最大堆和最小堆 最大堆:对于每个非叶子节点V,V的值都比它的两个孩子大 金字塔,最小堆为倒金字塔 最大堆支持每次pop操作获

2022-03-03 18:30:03 335

原创 运算符重载(加操作)

class Rest: def __init__(self, a, b): self.a = a self.b = b def __str__(self): return "Rest({},{})".format(self.a, self.b) def __add__(self, other): return Rest(self.a + other.a, self.b + other.b)print(Rest(

2022-03-03 18:26:31 51

原创 【装饰器】用类实现

class Dec(): def __init__(self,func): pass print("start") self._func = func def __call__(self, *args, **kwargs): self._func() print("end") pass@Decdef test(): print("test")test()

2022-03-03 18:24:44 76

原创 【协程】生产者和消费者模式

def consumer(): print('--4、开始执行生成器代码--') response = None while True: print('--5、yield,中断,保存上下文--') n = yield response # 4、yield,中断,保存上下文 print('--8、获取上下文,继续往下执行--') if not n: return print("[C

2022-03-03 18:20:08 71

原创 【二分查找】

def search(x, alist): if len(alist) < 2: return alist mid = len(alist) // 2 if x > alist[mid]: search(x, alist[mid:]) else: search(x, alist[:mid]) return xprint(search(3, [1, 2, 3, 4, 5]))

2022-03-03 18:15:14 37

原创 【装饰器】带参数实现

def logging(flag): def decorator(func): def inner(num1, num2): if flag == "+": print("正在进行加法运算") elif flag == "-": print("正在进行减法运算") return func(num1, num2) return inn

2022-03-03 18:01:51 98

原创 【单列】实现的2种模式

# 使用装饰器的方式-------------------------------------def singleton(cls): instances = {} def wrapper(*args, **kwargs): if cls not in instances: instances[cls] = cls(*args, **kwargs) return instances[cls] return wrapper

2022-03-03 17:57:29 34

原创 【propery属性】实现的两种方式

class Pro1(): def __init__(self): self._age = 0 @property def age(self): return self._age @age.setter def age(self,new_age): self._age = new_agep = Pro1()print(p.age)p.age = 10print(p.age)class Pro2():

2022-03-03 17:53:03 65

原创 【python设计模式】常用的创造模式

# 一个工厂方法的例子class DogToy: def speak(self): print("wang wang")class CatToy: def speak(self): print("miao miao")def toy_factory(toy_type): if toy_type == 'dog': return DogToy() elif toy_type == 'cat': retu

2022-03-03 17:41:38 273

空空如也

空空如也

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

TA关注的人

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