
数据结构
文章平均质量分 87
xiaohuihuicb
分享快乐
展开
-
Dijkstra算法几大模板
主要分为五部分 邻接矩阵版主函数普通邻接表版vector版优先队列版 算法思想:每次选出dis最小的那个点i,则dis[i]必定为为顶点s到顶点i的最短距离 更新所有与i相邻的顶点的dis值 依据:如果存在一条i到j的最短路径,其经过的节点为(i……k,j)。那么(i……k)的这条路径也必然是i到k的最短路径。 每个版本的最初都是构建图,首先将图初始化,然后进行加边。对于原创 2015-07-23 17:07:34 · 3374 阅读 · 1 评论 -
实现由双亲节点存储的树转化为二叉树的遍历算法实现
都知道,树的先根遍历和后根遍历分别对应了二叉树的先序遍历和中序遍历,而由先序遍历和中序遍历可以确定唯一的二叉树。 #include #include #include using namespace std; vectorpre;//保存先序遍历结果 vectorpost;//保存后序遍历结果 int bitree[100];//保存二叉树列表形式结果 int n; int first_原创 2016-04-10 10:02:04 · 3677 阅读 · 0 评论 -
POJ 1787 Charlie's Change 记录路径的多重背包
Charlie's Change Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 3499 Accepted: 1032 Description Charlie is a driver of Advanced Cargo Movement, Ltd. Charl原创 2015-07-28 19:54:54 · 613 阅读 · 0 评论 -
找下标最大的差值
question: 给定一个数组A,找出A[p]>=A[q] 中 p-q的最大值。 要求O(n)的时间和空间复杂度 answer1: 计算数组b,使得b[j]为A[j...n-1]的最大值。那数组就是一个递减的数组。 遍历A数组,当A[i]<b[j]时,说明在j...n-1之间有k使得A[j]<A[k]。那找到最小的j使得A[i]>b[j],这样找到如果q为i时的最...原创 2019-07-09 20:47:32 · 371 阅读 · 0 评论