自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 用 python 实现大小堆 & Top K 问题

用 python 实现大小堆 & Top K 问题python的 heapq 模块提供了堆队列(优先队列)的实现,默认是最小堆,即父节点不小于任意一个子节点使用最小堆可以实现前 K 大的问题,原理是维护一个长度为 K 的堆,每插入一个新元素就弹出之前的最小值,从而最终只剩最大的 K 个值如想解决前 K 小的问题,则需要将所有元素取负后加入堆,这样最终维持的是所有元素负数中最大的 K 个,再次取负后则得到最小的 K 个元素案例题目:1509. Minimum Difference Betwe

2020-08-25 08:52:11 883

原创 Dijkstra算法的两种写法和时间复杂度计算

Dijkstra算法的两种写法和时间复杂度计算基于集合的写法 (适用于稠密图)算法示例代码复杂度基于优先队列的写法(适用于稀疏图)算法示例代码复杂度两者比较Dijkstra算法是一种单源最短路径算法,是 BFS 的延伸基于集合的写法 (适用于稠密图)算法初始化距离向量 ddd(长度为 VVV),起点设为0,其他点设为无穷大初始化集合 QQQ,含义为尚未确定距离的顶点的集合,将所有顶点加入从 QQQ 中弹出距离最小的顶点 uuu遍历 uuu 的所有仍在 QQQ 中的邻居 www, 判断 d[u

2020-08-25 04:29:09 12649 1

原创 动态规划的通用解法和案例

动态规划两大要素四个步骤案例1. 最长公共子序列 (LCS)两大要素最优子结构 (optimal substructure)一个问题的最优解包括它自问子问题的最优解重叠子问题 (overlapping subproblems)如使用递归算法,则某些子问题被反复访问四个步骤Characterize the structure of an optimal solution.Recursively define the value of an optimal solution.

2020-08-18 05:23:00 193

原创 二分法的几种形式和适用场景

二分法的几种写法一般写法多个结果找最前多个结果找最后一般写法要求找到结果返回index,否则返回-1def search(arr, target): lo = 0 hi = len(arr) - 1 while lo <= hi: mid = lo + (hi - lo) // 2 # avoid overflow if target > arr[mid]: lo = mid + 1 elif target < arr[mid]: hi = mid -

2020-08-17 06:56:08 3692

空空如也

空空如也

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

TA关注的人

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