![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
guoweiguoweiguo
这个作者很懒,什么都没留下…
展开
-
BST比哈希的优势
对于search insert delete操作, Hash Table的时间复杂度是O(1)。对于BST(self-balancing Binary Search Tree, 比如 红黑树,AVL树等)时间复杂度是O(LgN)。看起来Hash Table在所有操作中都要优于BST的。那BST有什么优势呢?1. 获取所有的有序的key我们可以从BST树种获取所有的有序的key, 不...翻译 2020-05-02 16:52:43 · 395 阅读 · 0 评论 -
回文串 O(n)算法 Manacher算法(第二部分)
本文的原文地址http://leetcode.com/2011/11/longest-palindromic-substring-part-ii.html0 引言这篇文章,我们将介绍Manacher算法,如果对回文串的基本概念不熟悉的,请看前一篇文章。在前一篇文章中,我们介绍的回文串的基本概念,还介绍了几种求回文串的方法。这篇文章中的算法,可以在O(N)的时间复杂度中,求出最长回文串。翻译 2013-09-01 20:45:59 · 890 阅读 · 0 评论 -
杭电题目分类
第一篇1001这个就不用说了吧1002简单的大数1003DP经典问题,最大连续子段和1004简单题1005找规律(循环点)1006感觉有点BT的题,我到现在还没过1007经典问题,最近点对问题,用分治1008简单题1009贪心1010搜索题,剪枝很关键10111012简单题1013简单题(有个小陷阱)1014简单题1015可以看作转载 2013-09-01 21:17:02 · 573 阅读 · 0 评论 -
回文串 O(n)算法 Manacher算法(第一部分)
0.序求一个字符串中最长的回文串,O(n)算法Manacher。该算法很简单,比后缀树、后缀数组简单多了,比KMP也简单多了。而且效率很高是O(n)。本文翻译自http://leetcode.com/2011/11/longest-palindromic-substring-part-i.htmlhttp://leetcode.com/2011/11/longest-palindrom翻译 2013-09-01 16:29:05 · 916 阅读 · 0 评论 -
树状数组
树状数组英文名称为Binary Index Tree,直译过来就是二进制索引树,BIT。树状数组非常巧妙,一般人想不出来,不过很多算法都不是一般人能想出来的。1. 引入1.1 问题树状数组解决的问题:一个数组arr[],更新数组中的某个值arr[i],询问数组中某个区间(x,y)的和。看似很平常的一个问题,我们很容易写出 更新值时间复杂度为O(1),询问时间复原创 2013-09-05 09:49:58 · 548 阅读 · 0 评论 -
矩阵上的二分查找
今天做了一道题,矩阵上的二分查找,居然做错了。是考虑简单了。一维上的算法扩展到二维的时候,需要仔细分析矩阵中的数据的相互联系,然后调整算法。前些时候,树状数组那篇博客。在扩展到二维后,求子矩阵的区间和,就没有考虑清楚谁减去谁。这次二分查找扩展到二维后,也没有考虑清楚比arr[x][y]大的数据元素都可能在哪些区域。下面是代码,还可以优化,有些空间重复搜索了。#inclu原创 2013-09-11 22:19:03 · 584 阅读 · 0 评论 -
最长公共子序列和最长递增子序列
最长公共子序列和最长递增子序列 都应该算是动态规划中的经典问题吧。 而且,这两个问题居然可以相互转化。无后效性先说一下动态规划的一个基本特征,也是用动态规划求解的一个必要条件: 无后效性。无后效性:将各阶段按照一定的次序排列好之后,对于某个给定的阶段状态,它以前各个状态无法直接影响到它未来的发展,而只能通过当前这个状态,还句话说:每个状态都是过去历史的一个完整总结。原创 2013-09-20 21:17:03 · 575 阅读 · 0 评论 -
二分图之匈牙利算法
二分图的基本概念就不说了,就是一个图,点可以分成两个部分,左边和右边。 左边的点只能连接到右边的点,而不能存在某些边是连接左边的两个点或连接右边的两个点。如三角形,就不是二分图。四边形就是二分图,把对角的两个点放到左边,另外的两个点放到右边,就明显是二分图了。为了下面叙述方便,左边的点集称为X,右边的称为Y。求二分图的最大匹配有两个算法,一个是利用最大流求,一个是利用匈牙利算法。匈牙利算法比原创 2013-09-28 18:01:59 · 737 阅读 · 0 评论 -
用宏确实比用函数效率高
poj 2352 stars是树状数组的经典题目, lowbit(int x) 如果写成函数,就TLE了。写成宏,就是 150Ms AC。下面是代码:#includeusing namespace std;#define lowbit(x) (x&(-x))const int maxn=32000+10;int arr[maxn];int C[maxn];//原创 2013-09-04 15:32:36 · 1202 阅读 · 0 评论