题目链接:http://poj.org/problem?id=2286 对于24个数组成的#,一共有8中拉的方式,求使得中间8个数相同的最小操作以及操作方式,由于一个结点扩展的分支有7个,所以朴素dfs将会在无法获得最优解的分支上花费太多时间 通过枚举操作次数可以避免dfs搜索过深,并且加上未来估计 ...
分类:
编程语言 时间:
2020-06-22 11:12:25
阅读次数:
63
题目链接 给出一张 \(n\) 个点 \(m\) 条边的无向图,可能不连通、有重边、有自环、有割边。求其所有极大的边三连通分量。 \(n, m \le 5 \times 10 ^ 5\)。 论文太长了,还没看完,目前只看懂了算法步骤,一些证明还咕在后面。就先介绍一下步骤,正确性证明和时间复杂度证明等 ...
分类:
编程语言 时间:
2020-06-18 15:55:35
阅读次数:
65
寻找全排列的下一个数 摘自漫画算法: 题目:给出一个正整数,找出这个正整数所有数字全排列的下一个树。说的通俗点就是在一个整数所包含数字的全部组合中,找到一个大于且仅大于原数的新整数。 例子: 如果输入12345,则返回12354 如果输入12354,则返回12435 如果输入12435,则返回124 ...
分类:
编程语言 时间:
2020-06-07 21:12:34
阅读次数:
72
最小栈的实现 摘自漫画算法: 题目:实现一个栈,该栈带有出栈(pop)、入栈(push)、取最小元素(getMin)3个方法。要保证这3个方法的时间复杂度都是O(1)。 如图: 解法步骤 1、设原有的栈叫作栈A,此时创建一个额外的“备胎”栈B,用于辅助栈A。 2、当第1个元素进入栈A时,让新元素也进 ...
分类:
编程语言 时间:
2020-06-05 20:48:51
阅读次数:
58
如何判断链表有环 摘自漫画算法: 题目:有一个单向链表,链表中有可能出现“环”,就像下图这样,那么如何用程序来判断该链表是否为有环链表呢? 方法1 首先从头节点开始,以此遍历单链表中的每一个节点。每遍历一个新节点,就从头检查新节点之前的所有节点,用新节点和此节点之前所有节点依次做比较。如果发现新节点 ...
分类:
编程语言 时间:
2020-06-04 21:44:33
阅读次数:
71
目录 面试题14- I. 剪绳子/343. 整数拆分 面试题42. 连续子数组的最大和/53. 最大子序和 面试题47. 礼物的最大价值 一、面试题14- I. 剪绳子/343. 整数拆分 1.1 问题: 给定一个正整数n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最... ...
分类:
编程语言 时间:
2020-06-03 00:18:36
阅读次数:
74
目录 最长公共子序列 编辑距离 最长上升子序列 结合上一篇文章,再继续尝试解决动态规划题目 一、1143. 最长公共子序列 1.1 问题: 给定两个字符串text1 和text2,返回这两个字符串的最长公共子序列的长度。 一个字符串的子序列是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序... ...
分类:
编程语言 时间:
2020-05-23 10:02:05
阅读次数:
67
题目连接:https://www.luogu.com.cn/problem/UVA11383 下面是题解: 我们仔细一想就会发现这道题其实是一个二分图最大匹配的板子 我们可以把这道题想象成将男生和女生之间两两配对,使他们的好感度最大 我们把矩阵中的元素a[x][y] 看成女生和男生之间的好感度,跑一 ...
分类:
编程语言 时间:
2020-05-11 18:24:33
阅读次数:
63
好久没有水刷算法题的博客了,也不是因为一直没写,而是单个题目总感觉记录下来差点意思。正好今天又碰到一个可以用双指针来解决的问题,顺便记录一下。 在我看来,双指针并不是一种“算法”,而是一种解决算法题目的技巧,如果运用得当其实可以方便的解决某一种类型的问题。 写到这里想起来前几天和基友吹水,关于链表的 ...
分类:
其他好文 时间:
2020-05-10 16:50:39
阅读次数:
59
贪心算法题目很多本质上都是区间贪心,这次就主要讨论以区间为载体进行的贪心算法。 [toc] 我们以POJ上的这三道题目为例,分析一下这类型题目的主要思想,难度依次递进啦~ POJ 2376: Cleaning Shifts 题目 Description Farmer John is assignin ...
分类:
编程语言 时间:
2020-05-04 15:52:49
阅读次数:
75