随笔分类 - 算法
摘要:import numpy as np ''' 目标检测中常用到NMS,在faster R-CNN中,每一个bounding box都有一个打分,NMS实现逻辑是: 1,按打分最高到最低将BBox排序 ,例如:A B C D E F 2,A的分数最高,保留。从B-E与A分别求重叠率IoU,假设B、D与A的IoU大于阈值,那么B和D可以认为是重复标记去除 3,余下C E F,重复前面两步。 ''' d
阅读全文
摘要:def compute_iou(rec1, rec2): """ computing IoU :param rec1: (y0, x0, y1, x1), which reflects (top, left, bottom, right) :param rec2: (y0, x0, y1, x1) :return: scala value of IoU """ # computing area o
阅读全文
摘要:import sys h, w = input().strip().split() h = int(h) w = int(w) img = [] for i in range(h): line = sys.stdin.readline().strip() line = list(map(int, line.split(' '))) img.append(line) kernel = [] m =
阅读全文
摘要:# 给一个字符串,按如下规则把它翻译成字符串:1翻译成a,2翻译成b,...25翻译成z;一个数可以有多种翻译方式,比如122可以翻译成abb和kb还可以翻译成aw即3种翻译方式。计算一个数字有几种翻译方式class Solution(object): def numDecodings(self, s): """ :type s: str :rtype: int """ s = str(s) di
阅读全文
摘要:时间复杂度:: 平均:O(nlog(n)) 最坏:O(nlog(n)) 最好:O(nlog(n)) 空间复杂度:O(n) 稳定性:稳定
阅读全文
摘要:简单选择排序的改进:快速排序 时间复杂度:: 平均:O(nlog(n)) 最坏:O(n^2) # 有序 最好:O(nlog(n)) 空间复杂度:O(log(n)) ,最坏的情况O(n) 稳定性:不稳定(选择排序都是不稳定的)
阅读全文
摘要:时间复杂度:: 平均:O(n^2) 最坏:O(n^2) 最好:O(n^2) 空间复杂度:O(1) 稳定性:不稳定(三个简单排序中唯一一个不稳定的算法,也是最好最坏情况一样复杂的一个,其他两个最优情况都是O(n))
阅读全文
摘要:插入排序的改进:希尔排序 时间复杂度:: 平均:O(nlog(n)) 最坏:O(nlog(n)) # 倒序 空间复杂度:O(1) 稳定性:不稳定
阅读全文
摘要:时间复杂度:: 平均:O(n^2) 最坏:O(n^2) # 倒序 最好:O(n) # 有序的时候 空间复杂度:O(1) 稳定性:稳定
阅读全文
摘要:时间复杂度:: 平均:O(n*log(n)) 最坏:O(n*log(n)) 最好:O(n*log(n)) 空间复杂度:O(1) 稳定性:不稳定
阅读全文
摘要:改进: 时间复杂度: 平均:O(n^2) 最好:O(n) (递增/递减) 最坏:O(n^2) (递减/递增) 空间复杂度:O(1) 稳定性:稳定
阅读全文
摘要:递归算法中什么时候用return啥时候不用呢? 使用2个例子来说明:快速排序和二分查找 所以需不需要return?就看这个函数需不需要返回值,如果需要有返回值,那么一定得确保最后有返回值。
阅读全文
摘要:def func2(head): p = head.next while p.next: q = p.next p.next = q.next # 重点 head.next = q q.next = p p.next = head head = head.next p.next.next ...
阅读全文
摘要:我觉得我的算法比较简单易懂,比网上的那些简单些。至于时间复杂度就没有比较了。 算法思想:从最外层向内层遍历矩阵
阅读全文