摘要:
源码:https://github.com/weilanhanf/PythonDesignPatterns python - 策略模式 策略: 为了达到某一目的而采取的手段或者方法。 阅读全文
摘要:
查找 二分法查找 from time import perf_counter from typing import List def my_min(arr: List[int]): """ 二分查找法 :param arr: 已知有序数组 :return: list数列 """ length = l 阅读全文
摘要:
图像的开闭运算 ##实例: python OpenCV使用场景 https://blog.csdn.net/qq_39507748/article/details/104539673 原理: 图像开运算和闭运算与膨胀和腐蚀运算有关, 由膨胀和腐蚀两个运算的复合与集合操作(并、交、补等)组合的运算构成 阅读全文
摘要:
凸包(Convex Hull) 数学定义:在一个向量空间中,对于给定几何X, 所有包含X的凸集的交集S被称为X的凸包 场景: 图像处理过程中,常常需要寻找图像中,包围某个物体的凸包。凸包跟多边形逼近很像,只不过它是包围 物体外层的一个凸集,这个凸集是所有能包围这个物体的凸集的交集。 图中,绿色线条所 阅读全文
摘要:
前言 with语句的使用给我们带来了,很多的便利,最常用的就是关闭一个文件,释放一把锁。 实现原理 根据with的实现原理“上下文管理器协议” 此协议,提示我们要在类中去实现两个特族方法,enter(self)和exit(self, exc_type, exc_val, exc_tb) 有了这两个方 阅读全文
摘要:
最近最少使用算法LRU(Least Recently Used) 原理: 按照使用时间倒排序,然后从尾部删除元素。 场景: 在有限的空间中,存储对象时,当空间满时,会按一定的原则删除原有的对象, 常用的原则(算法)LRU, FIFO, LFU等。 计算机的Cache硬件,以及主存到虚拟内存的页面置换 阅读全文
摘要:
递归函数的弊端 递归函数虽然编写时,使用很少的代码完成了庞大的功能,弊端非常明显--时间和空间的消耗。 eg: import time def fibonacci(n): if n < 2: return 1 else: return fibonacci(n - 1) + fibonacci(n - 阅读全文
摘要:
对容器list进行分组: 使用场景: 容器list数据较多,导致代码运行时,内存溢出; 需要对数据进行分组; 代码实例: def list_of_groups(list_info, per_len): """ group the list :param list_info: :param per_l 阅读全文
摘要:
字符换的替换 一般方法: 思路:从前向后,直接找到需要被替换的字符,进行替换 缺点: 需要移动被替换的字符其后字符,造成时间复杂度为O(n^2); 优化: 思路:从后向前,进行遍历和替换; 首先遍历,找出有多少个被替换的字符,然后计算出,替换字符后所需容器大小,使用双指针从后向前进行遍历,遇到被替换 阅读全文
摘要:
python 根据需求来进行去重 实例代码: from functools import reduce rule_list = [1,2,3,43,2,1] remove_duplicate_func = lamba x,y : x if y in else x + [y] res = reduce 阅读全文