题目描述:一个数组大小N,由0到N-1之间的数组组成,或重复,或不存在,请统计每个数字出现的次数。
#include
using namespace std;
//借用辅助空间,不破坏原数组(空间换时间)
void ParseArr(int *a, int l,int *b)
{
for(int i=0;i<l;++i)
{
b[a[i]%l]++;
}
}
//在原数组上面进...
分类:
其他好文 时间:
2015-05-12 18:53:47
阅读次数:
156
【物理设计的工作】① 选择合适的数据库管理系统:Oracle,SQLServe,MySQL,PgSQL② 定义数据库、表及字段的命名规范③ 根据所选的 DBMS 系统选择合适的字段类型④ 反范式化设计 —— 考虑读效率,在一些表中增加适当的冗余(空间换时间)【数据库选择】【MySQL 常用的存储引擎...
分类:
数据库 时间:
2015-05-04 06:22:44
阅读次数:
253
后缀数组很久很久以前就出现了,具体的概念读者自行搜索,小菜仅略知一二,不便讨论。 本文通过寻找两个字符串的最长公共子字符串,演示了后缀数组的经典应用。 首先需要说明,小菜实现的这个后缀数组算法,并非标准,只是借鉴了其中的思想。 小菜实现的算法,有两个版本,第一个是空间换时间,第二个是时间换...
分类:
编程语言 时间:
2015-05-01 18:34:01
阅读次数:
151
题目在这里:https://leetcode.com/problems/two-sum/【标签】Array; Hash Table【个人分析】 这个题目,我感觉也可以算是空间换时间的例子。如果是O(n^2)的那种思路,就是对于一个数字,去扫剩下的所有数字,看有没有能够加起来和为target的组合.....
分类:
编程语言 时间:
2015-05-01 07:07:25
阅读次数:
148
典型的以空间换时间问题,思路非常重要!/*员工年龄排序 员工可能有几万名,要求时间复杂度为O(n) 思路:员工的年龄必定在一个范围内,比方0-99,那么我们建立一个大小为100的辅助数组,然后遍历 员工年龄,取到一个年龄就将该年龄相应数组位置的值加1,终于数组中便保存了不同年龄的员工的个数 ...
分类:
编程语言 时间:
2015-04-30 17:55:20
阅读次数:
142
来源于英文“retrieval”. Trie树就是字符树,其核心思想就是空间换时间。举个简单的例子。 给你100000个长度不超过10的单词。对于每一个单词,我们要判断他出没出现过,如果出现了,第一次出现第几个位置。这题当然可以用hash来,但是我要介绍的是trie树。在某些方面它的用途更大。比如说...
分类:
编程语言 时间:
2015-04-28 01:32:41
阅读次数:
140
随手写了个进制转换的,低级但也有几点注意的:#include#include#includeusing namespace std;stack si;/*这里采用空间换时间的做法,而且可以扩展成任意想要的表示法*/char c_arr[36]={'0','1','2','3','4','5','6'...
分类:
其他好文 时间:
2015-04-15 00:50:26
阅读次数:
178
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.用空间换时间的方法,先用一个数组将节点按序存放,然后建树,代码如下:/** * D...
分类:
其他好文 时间:
2015-04-10 21:51:05
阅读次数:
117
散列表,又叫哈希表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙。 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通....
分类:
编程语言 时间:
2015-04-03 13:08:26
阅读次数:
165
1.1、什么是Trie树
Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。
Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。
它有3个...
分类:
其他好文 时间:
2015-03-30 11:27:50
阅读次数:
199