【问题】
题目:数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。
【分析】
解法1:
先排序,排序后数组中间的那个元素就是要找的那个数字。时间复杂度O(n*logn)。
解法2:
既要缩小总的时间复杂度,那么可以用查找时间复杂度为O(1)的hash表,即以空间换时间。哈希表的键值(Key)为数组中的数字,值(Value)为该数字对应的次数。然后直接遍历整个hash表,...
分类:
其他好文 时间:
2014-08-22 21:13:09
阅读次数:
265
本文主要分析g++ stl中哈希表的实现方法。stl中,除了以红黑树为底层存储结构的map和set,还有用哈希表实现的hash_map和hash_set。map和set的查询时间是对数级的,而hash_map和hash_set更快,可以达到常数级,不过哈希表需要更多内存空间,属于以空间换时间的用法,...
分类:
其他好文 时间:
2014-08-21 22:44:34
阅读次数:
387
转自:http://blog.csdn.net/zxycode007/article/details/6999984散列表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙。散列表(Hash t...
分类:
其他好文 时间:
2014-08-21 01:29:53
阅读次数:
365
1、 skiplist 巩固skiplist 跳跃表,简单理解是用空间换时间,来实现链表二分查找的数据结构可以用pre、next、blow、above实现四向的链表操作,可以简化search、insert、delete、get等操作时间复杂度:2、 lucene 巩固开源的全文检索引擎框架主要过程:...
分类:
Web程序 时间:
2014-08-17 11:45:02
阅读次数:
256
一、概念:动态规划(Dynamic programming,DP)是一种在数学,科学计算和经济学中使用的,通过把原问题分解成相对简单的子问题的方式求解复杂问题。DP常常适用于有重叠子问题和最优子结构性质的问题,DP所消耗的时间往往小于朴素解法(拿空间换时间)。 动态规划背后色思想很简单那...
分类:
其他好文 时间:
2014-08-08 15:31:26
阅读次数:
181
题目:复制一个复杂链表,所谓复杂链表指的是每个节点含有两个指针,一个指向单链表的下一个结点,一个指向单链表中的任意某个结点,或者该指针为空。
为了方便起见,我们将待复制的链表称为原型链表,将复制后的新链表称为复制链表,将指向下一个结点的指针定义为next指针,指向其他位置的指针定义为any指针。《剑指offer》上给出了三种解决方法:(1)常规法;(2)空间换时间法;(3)紧随复制法。书上并给出了第三种方法的实现代码。这里我根据书上的提示,给出第二种方法的代码。...
分类:
其他好文 时间:
2014-08-05 22:45:00
阅读次数:
346
上篇文章算法题:复制复杂链表之空间换时间法我们给出了用映射的方法来为新复制的链表中的每个结点设置any指针,本文给出的是《剑指offer》上给出的算法与代码,《剑指offer》上提到该算法的实现三个步骤:
第一步:复制原始链表的任意结点N并创建新结点N',在把N'连接到N的后面;
第二步:设置每个结点的any指针;
第三步:将长链表分成两个链表,一个是原始链表,另外一个就是我们所要求的复制链表。
为了能够更加明显第理解整个求解过程,我们同样给出如下图:...
分类:
其他好文 时间:
2014-08-05 22:43:10
阅读次数:
310
题意:输入 语言A及翻译为语言B的词典,之后再输入语言B的单词,判断是否能从词典中找到,
若能找到,将其翻译为语言A,否则输出“eh”.
思路:这题肯定得先将词典对应语言存起来,但是如果直接暴力找输入的单词是否出现过,必然会TLE
因为单词都是一对一的关系,可以用map实现
当然,trie树是用空间换时间,对于字符串的查找,在时间上有着相当的优势,因此也可以用trie树
注:sscanf函数,从一个字符串中读进与指定格式相符的数据....
分类:
其他好文 时间:
2014-08-05 19:26:00
阅读次数:
232
定义:又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,
如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树。
核心思想:是空间换时间.利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。
三个基本性质:
1. 根结点不包含字符,除根结点外每一个结点都只包含一个字符。
2. 从根结点到某一结点,路径上经过的字符连接起来,为该结点对应...
分类:
其他好文 时间:
2014-08-04 17:46:47
阅读次数:
231
定义:又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树。核心思想:是空间换时间.利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。三个基本性质:1.根结点不包含字符,除根结点外每一个结点都只包含一个字符。2.从...
分类:
其他好文 时间:
2014-08-04 17:29:27
阅读次数:
239