刚开始,我想到的是一种笨方法,先遍历单链表,计算出单链表的长度len,然后再从头遍历单链表到第len-k个节点,那么这个节点既是单链表的倒数第k个节点。
不过这种算法时间复杂度挺高的,还有一种更简单的方法,就是设置两个指针,分别指向单链表的头节点,然后让其中一个指针,先走k步,之后...
分类:
其他好文 时间:
2014-05-19 11:40:44
阅读次数:
359
题目链接:POJ 1631 Bridging
signals【题意】简单来说就是求最长上升子序列的长度。【思路】这道题目的数据规模有40000之多,如果用普通的动态规划O(n^2)肯定会超时的,所以要用上二分查找(又是二分啊,真牛逼)来进行优化,O(nlogn)的时间复杂度就OK了。我使用了C++的...
分类:
其他好文 时间:
2014-05-19 10:09:54
阅读次数:
357
问题描述:给定一个长度为N的整数数组,只允许用乘法,不能用除法,计算任意(N-1)个数的组合乘积中最大的一组,并写出算法的时间复杂度。解法:1.暴力解法------O(n^2)2.前后缀法------O(n)3.统计法--------O(n)具体思路和代码:1.暴力解法:思路:利用两层循环,依次删掉...
分类:
其他好文 时间:
2014-05-19 09:34:57
阅读次数:
307
出题:预先输入一个整型数组,数组中有正数也有负数;数组中连续一个或者多个整数组成一个子数组,每个子数组有一个和;求所有子数组中和的最大值,要求时间复杂度O(n);分析:时间复杂度为线性表明只允许一遍扫描,当然如果最终的最大值为0表明所有元素都是负数,可以用线性时间O(N)查找最大的元素。具体算法策略...
分类:
其他好文 时间:
2014-05-18 20:21:35
阅读次数:
339
思路:枚举然后深搜,时间复杂度有点高。代码: 1 #include 2 #include 3
#include 4 #include 5 using namespace std; 6 int a[25]; 7 char c[25]; 8 int
flag; 9 int len;10 int judg...
分类:
其他好文 时间:
2014-05-18 19:51:19
阅读次数:
341
红黑树概念
特殊的二叉查找树,每个节点上都有存储位表示节点的颜色是红(Red)或黑(Black)。时间复杂度是O(lgn),效率高。 特性:
(1)每个节点或者是黑色,或者是红色。 (2)根节点是黑色。 (3)每个叶子节点(NIL)是黑色。(只为空(NIL或null)的节点)
(4)如果一个节点是红...
分类:
其他好文 时间:
2014-05-18 01:38:25
阅读次数:
611
【题目】
给定两个字符串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
1.Trie树简介
Trie树,又称字典树、前缀树,被用于信息检索(information retrieval)的数据结构。Trie一词便来自于单词retrieval。基本思想:用字符串的公共前缀降低查询时间。比如,在最优的查询二叉树中查询关键字的时间复杂度为M * log N,M是字符串最大长度,N为字符串数量;而用Trie树时,只需O(M)时间。
[1] 中给出一个简单...
分类:
其他好文 时间:
2014-05-15 23:36:16
阅读次数:
394
第一、任意一个比较排序算法在最好情况下的时间复杂度也是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
插入排序是最基本基于比较的排序方法,其时间复杂度为Ο(n2),最好情况为初始有序,最坏为逆序。
伪代码如下: insertionSort(A,n) for i=1 to n do key=A[i] for j=i-1 to 0 if ar...
分类:
其他好文 时间:
2014-05-14 22:35:28
阅读次数:
326