从零开始的算法之路02——union-find算法动态连通性问题说明:问题的输入是一列整数对,其中每个整数都表示一个某种类型的对象,一对整数 p q 可以被理解为“ p 和 q 是相连的”。我们假设“相连”是一种等价关系,这也就意味着它具有: 自反性:p 和 p是相连的; 对称性:如果 p 和 q 是相连的,那么 q 和 p 也是相连的; 传递性:如果 p 和 q 是相连的且 q 和 r 是相连的,那么 p 和 r 也是相连的。 等价关系能够 2021-12-20 算法 #java #算法 #数据结构
从零开始的算法之路01——基本的数据结构栈下压栈(或简称栈)是一种基于后进先出(LIFO)策略的集合类型。 学习栈可以先从一个经典的例子切入:算术表达式求值。 算术表达式求值1( 1 + ( ( 2 + 3 ) * ( 4 * 5 ) ) ) 上述表达式的结果为101,但用 java 语言如何实现这个运算呢?答案之一就是:Dijkstra的双栈算术表达式求值算法。基本思路如下: 创建2个栈(一个保存运算符,一个保存操作数) 将操作数 2021-12-17 算法 #java #算法 #数据结构