
算法
清风予你
实践与理论结合,每天进步一点!!!个人遇到问题记录!
展开
-
有两个杯子,一个5升一个6升,很多水,请问如何取得3升水
首先,把大的倒入小的杯子装满A6---B5----->A6得到1升的水6L-5L=1L再把1L倒入B5后,装满A6倒入B5,得到剩下的2L,6-4=2L清空B5倒入B5,装满A6倒入A5,得到剩下的3L6-3=3L原创 2022-01-01 22:06:39 · 2135 阅读 · 0 评论 -
64匹马,8赛道,找出最快的4匹最少要几次?
首先:1,8个赛道都跑一次,8组的组内顺序都能排序出来。82,因为是最快的四匹,所以每组的后4匹都排除结果之外。3,然后每个组的第一名再去赛跑,跑完后最后四名的组可以排除掉。14,最后剩下A1,A2,A3,A4B1,B2,B3,B4C1,C2,C3,C4D1,D2,D3,D45,假设A1>B1>C1>D1这样在三种情况下,D2,D3,D4排除C3,C4排除B4排除6,剩下A1,A2,A3,A4B1,B2,B3C1,C2原创 2022-01-01 21:55:28 · 1179 阅读 · 0 评论 -
最大子序列之和
1 复杂度为N^2的解法:#define INF 1000000int MaxSeq(int str[],int n){ int Max=-INF; //int sum=0; for(int i=0;i<n;i++) { //每次从新开始 int sum=0; for(int j=i;j<n;j++)原创 2016-09-29 15:46:27 · 340 阅读 · 0 评论 -
堆排序(heap sort)总结
简介 以前学数据结构的时候,用的是严的书,对于堆这个结构似懂非懂。现在趁着空闲再次学习数据结构,联系网上的资料整理出自己对堆的理解。堆的定义 二叉堆满足二个特性: 1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。 2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。堆的性质(需要注意的点) 1.堆是完全原创 2016-04-10 21:27:36 · 681 阅读 · 1 评论 -
SPFA 算法详解( 强大图解,不会都难!) (转)
适用范围:给定的图存在负权边,这时类似Dijkstra等算法便没有了用武之地,而Bellman-Ford算法的复杂度又过高,SPFA算法便 派上用场了。 我们约定有向加权图G不存在负权回路,即最短路径一定存在。当然,我们可以在执行该算法前做一次拓扑排序,以判断是否存在负权回路,但这不是我们讨论的重 点。算法思想:我们用数组d记录每个结点的最短路径估计值,用邻接表来存储图G。我们采取的方法是转载 2017-03-10 21:22:25 · 1173 阅读 · 0 评论 -
彻底搞懂红黑树
首先是红黑树零 八卦起源 1972年,鲁道夫贝尔最先发明,但是他称之为“对称二叉B树”,真正的称之为“红黑树”是在1978年Leo J. Guibas 和 Robert Sedgewick的一篇论文开始的。红黑树的命名和Xerox PARC也有关系,当时Robert Sedgewick在施乐做访问学者的时候,施乐正好发明出激光彩色打印机,然后觉得这个转载 2017-07-24 09:32:31 · 1045 阅读 · 0 评论 -
网络流(Network Flow)
转自 http://mindlee.com/2011/11/19/network-flow/网络流(Network Flow)算法学习 | Nov 19, 2011将每条有向边想象成传输物质的管道。每个管道都有一个固定的容量,可以看作是物质能流经该管道的最大速度(譬如可以想象为水流和河槽)。顶点是管道间的连接点,除了源点(S,Source)和汇点(T,Target转载 2017-03-08 22:10:43 · 3703 阅读 · 0 评论