![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
zzuli_xiaomingke
限于不粘锅
展开
-
【Java算法】-- 归并排序
归并排序是一种占用空间较多,但是时间复杂度比较少的排序算法,学期学习数据结构提到过,却没有深入学习,如今正值暑假,抽出时间买了一本Java算法,学习学习,书是谢路云(译者)的《算法》第四版,源码在原书170页;核心思想在于,我们先搞定一个合并算法,然后对于一个序列,先对其左半边进行拆分,直到无法拆分,然后左右两侧进行合并,是的这一区间里面的元素有序,然后经过多次上述的操作,整个序列就会有序,代...原创 2019-07-25 11:20:31 · 112 阅读 · 0 评论 -
盛最多水的容器(双指针)
今天在leetcode上刷了一道题用到了双指针,现在把这种精妙的解法记录下来题目传送门题目的大意就是要找到一个最大的min(s[i], s[j])*(j-i),那么这时候我是一点思路都没,然后题解指出了一个双指针的做法,我们先讨论这个东西的合理性,初始情况,将i,j放到数组的开始和结尾,此时,我们能拿到一个面积,这个面积的计算公式是:min(s[left], s[right])*(right-left)那么,接下来怎么做呢,不妨假设一边不动,挪动另一边的下标,如果改变left的下标,不妨看出,此时原创 2020-09-29 21:40:58 · 179 阅读 · 1 评论 -
网络流之最大流算法(Dinic算法-java)
网络流之最大流算法(Dinic算法)上一篇博客简单记录了EK算法的思路,这个算法比较简单,原因是他的思路也很暴力,那这次介绍的EK算法就非常的棒,非常的高端,这里其实是借鉴了kuangbin的模板,加上了一些自己的理解好了,下面开始整活做一个总结,Dinic就是一个在分层基础上dfs寻找增广路的最大流解决方案首先来说为甚要进行节点的分层,先说具体操作,我们使用bfs的方式给节点分层pub...原创 2020-04-14 15:17:58 · 1038 阅读 · 4 评论 -
网络流之最大流算法(EK算法)
网络流之最大流算法(EK算法和Dinic算法)上个博客介绍了链式前向星的作用,其实就是为了Dinic算法铺路,下面先介绍简单一点的EK算法,在EK算法中,我们借助BFS的方式来寻找路径我们就用这个地图来讲解算法的步骤,首先,我们使用二维数组volume[i][i]来记录点i到点j的容量,flow[i][j]来记录点i到点j的流量,我们的思路如下使用bfs从起点start开始发起搜索使用...原创 2020-04-13 11:59:37 · 741 阅读 · 0 评论 -
链式前向星简介
最近学习数据结构和算法的时候遇到了一个棘手的问题,那就是网络流中的最大流算法,起初使用EK算法,但是最后随着数据规模的增长,好像还是要归到Dinic算法才能解决所有的问题但是问题来了,在网上看到的几乎所有题解都是直接上了个思路,然后放一个板子,就这,但是板子看起来确实不太好懂,现在来做个科普,链式前向星,这个东西是一种数据结构,在kuangbi的模板中出现了,刚开始看的一头雾水,到后来了解到了这...原创 2020-04-12 16:20:38 · 683 阅读 · 0 评论 -
HDU 2612 Find a way(Java)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2612题目大意说一下,有一个地图上面有两个人,要去KFC见面,然后需要求出二者到KFC的最短距离之和,这原本是一个简简单单的bfs搜索,但是两个人的出现,让它加了点难度思路:第一次搜索从Y开始,然后求出他到达每个KFC的距离,然后打个表出来,存着备用,然后从M开始搜索,在求出他到达每个KFC的距离,将这...原创 2020-03-31 15:24:25 · 119 阅读 · 0 评论 -
Java数据结构(逆波兰表达式)
Java数据结构(逆波兰表达式)最近在学习java数据结构的相关知识,记录一下学习的内容,算是每天的总结,今天学习的是栈相关的内容,然后学习前缀,中缀,后缀表达式,下面介绍一下,这三种表达式的含义中缀:中缀表达式,是我们最常见的表达式,就是日常算式,比如4+9-90*(5-1),这种结构是人类能够了解并且计算的表达式但是计算机却不好理解后缀:后缀表达式,这里先不说后缀表达式是什么,先说怎么...原创 2020-03-06 18:15:30 · 444 阅读 · 0 评论