码迷,mamicode.com
首页 >  
搜索关键字:复杂度    ( 16171个结果
查找单链表的倒数第k个值
刚开始,我想到的是一种笨方法,先遍历单链表,计算出单链表的长度len,然后再从头遍历单链表到第len-k个节点,那么这个节点既是单链表的倒数第k个节点。 不过这种算法时间复杂度挺高的,还有一种更简单的方法,就是设置两个指针,分别指向单链表的头节点,然后让其中一个指针,先走k步,之后...
分类:其他好文   时间:2014-05-19 11:40:44    阅读次数:359
POJ 1631 Bridging signals(LIS+二分)
题目链接:POJ 1631 Bridging signals【题意】简单来说就是求最长上升子序列的长度。【思路】这道题目的数据规模有40000之多,如果用普通的动态规划O(n^2)肯定会超时的,所以要用上二分查找(又是二分啊,真牛逼)来进行优化,O(nlogn)的时间复杂度就OK了。我使用了C++的...
分类:其他好文   时间:2014-05-19 10:09:54    阅读次数:357
【转】斜率优化的一道例题
我们知道,有些DP方程可以转化成DP[i]=f[j]+x[i]的形式,其中f[j]中保存了只与j相关的量。这样的DP方程我们可以用单调队列进行优化,从而使得O(n^2)的复杂度降到O(n)。可是并不是所有的方程都可以转化成上面的形式,举个例子:dp[i]=dp[j]+(x[i]-x[j])*(x[i...
分类:其他好文   时间:2014-05-17 14:19:06    阅读次数:214
编程之美之字符串移位包含问题
【题目】 给定两个字符串s1和s2,要求判断s2是否能够被通过s1做循环移位(rotate)得到的字符串包含。例如,S1=AABCD和s2=CDAA,返回true;给定s1=ABCD和s2=ACBD,返回false。 【分析】 【思路一】 从题目中可以看出,我们可以使用最直接的方法对S1进行循环移动,再进行字符串包含的判断,从而遍历其所有的可能性。 字符串循环移动,时间复杂度为O(n...
分类:其他好文   时间:2014-05-16 02:56:14    阅读次数:305
【数据结构】Trie树
1.Trie树简介 Trie树,又称字典树、前缀树,被用于信息检索(information retrieval)的数据结构。Trie一词便来自于单词retrieval。基本思想:用字符串的公共前缀降低查询时间。比如,在最优的查询二叉树中查询关键字的时间复杂度为M * log N,M是字符串最大长度,N为字符串数量;而用Trie树时,只需O(M)时间。 [1] 中给出一个简单...
分类:其他好文   时间:2014-05-15 23:36:16    阅读次数:394
Leetcode 线性表 数 Add Two Numbers
题意:给定两个代表数字的链表,每个节点里存放一个digit,数字是逆方向的,将这两个链表相加起来 思路: 1.i, j遍历l1,l2至最长,短的补零 2..设置一个进位变量c, 第i次遍历 l1,l2,c的和除以10进位,mod10留在这一位 3.出循环后还要检查是不是还有进位 复杂度:O(m+n), 空间O(m+n)...
分类:其他好文   时间:2014-05-15 13:38:03    阅读次数:258
Leetcode 数 Add Binary
题意:给定两个二进制字符串,返回它们的和 思路: 1.按最长的循环,短的前面补零 2.因为变量少,不用考虑节省空间,定义为int最行了 3.用二进制可能会快一点。不过实现会麻烦一些 复杂度:时间O(m+n),空间O(m+n)...
分类:其他好文   时间:2014-05-15 13:17:22    阅读次数:222
前端UI框架技术选型
需求为了重构应用开发平台的前端,对目前的UI框架技术进行调研,有以下的标准:1要有丰富的控件以便支持大多数的mis系统的需求,如tree/table等2轻量不复杂,学习成本少3有统一的界面风格与调用接口4方便扩展5文档丰富6社区活跃UI框架调研复杂度开发模式开源收费组件稳定性扩展..
分类:其他好文   时间:2014-05-15 00:35:29    阅读次数:452
Leetcode 线性表 Swap Nodes in Pairs
题意:交换给定链表中的相邻节点,但不可以改变链表里的值 如1->2->3->4交换后为2->1->4->3 思路: 按题意中的扫描去改变每两个相邻节点的next指针的指向即可。 小技巧: 因为处理每两个相邻节点的时候,需要一个指针记录它们前一个节点,而头节点前面没有节点, 所以可设置一个dummy节点指向头指针,这样开头的两个节点的处理方式跟其它的相邻节点的处理方式就一样了 复杂度:时间O(n),空间O(1)...
分类:其他好文   时间:2014-05-15 00:16:00    阅读次数:359
计数排序
第一、任意一个比较排序算法在最好情况下的时间复杂度也是O(nlogN); 第二、计数排序 假设n个输入元素的每一个都是介于0到k之间的整数,计数排序可用,需要临时存储空间O(K),时间复杂度是O(n). #include using namespace std; void countingSort(int *A,int len,int max) { if(A==NULL || len<...
分类:其他好文   时间:2014-05-14 23:58:58    阅读次数:382
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!