03 2022 档案
摘要:查找 二分法查找 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); 优化: 思路:从后向前,进行遍历和替换; 首先遍历,找出有多少个被替换的字符,然后计算出,替换字符后所需容器大小,使用双指针从后向前进行遍历,遇到被替换
阅读全文