/* 题目: 求从1开始的第n个丑数。 */ /* 思路: 按顺序列出各个丑数。 */ #include<iostream> #include<cstring> #include<vector> #include<algorithm> #include<map> using namespace st ...
分类:
其他好文 时间:
2019-12-17 22:22:47
阅读次数:
92
inline——嵌入代码行中,类似宏但更强大(宏不能做类型检查) 空间换时间 不是defination,而是declaration 建议将两三行的短函数,或会被多次调用(循环中的函数)定义成inline 大函数(>20行),递归函数 在.h文件中定义函数体即可,不需要.cpp文件 类的成员函数直接在 ...
分类:
编程语言 时间:
2019-12-16 22:09:02
阅读次数:
83
问题的引出 都是字典惹的祸 字典为了提升查询效率,必须用空间换时间。 一般来说一个多想,属性多一点,都存储在字典中便于查询,问题不大。 但是如果数百万个对象,那么字典占的就有点大了。 这个时候,能不能把属性字典__dict__省了? python提供了__slots__ class A: x = 1 ...
分类:
其他好文 时间:
2019-12-09 19:23:40
阅读次数:
89
一、字典树描述:Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。 Trie的核心思想是空间换时间。利用字符 ...
分类:
其他好文 时间:
2019-12-07 14:45:17
阅读次数:
115
其实token与session的问题是一种时间与空间的博弈问题, session是空间换时间,而token是时间换空间。 一、发展史 很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新的HTTP协议, 就是请求加 ...
分类:
其他好文 时间:
2019-11-30 21:11:31
阅读次数:
138
深入比较TheadLocal模式与synchronized关键字 ThreadLocal模式synchronized关键字都用于处理多线程并发访问变量的问题,只是二者处理问题的角度和思路不同。 1)ThreadLocal是一个java类,通过对当前线程中的局部变量的操作来解决不同线程的变量访问的冲突 ...
分类:
其他好文 时间:
2019-11-16 12:26:09
阅读次数:
55
单例模式 定义 保证一个类仅有一个实例,并提供一个访问它的全局访问点 六种写法 1.饿汉式 饿汉式是典型的空间换时间,在类装载时进行了对象实例化,不管是否使用都先创建出来,类装载较慢,但提取对象的速度快,饿汉式基于JVM类装载的机制避免了多线程同步问题,但是没有达到懒加载的效果, 如果从始至终从未使 ...
分类:
其他好文 时间:
2019-11-12 22:01:04
阅读次数:
101
字典树算法是典型的空间换时间的算法,虽然对空间的消耗很大,但是利用字符串的公共前缀来降低查询时间,查询效率非常高;而且也可以使用压缩字典树(Compressed Trie)来降低对内存的消耗,增加硬件资源的有效利用率。
分类:
编程语言 时间:
2019-11-08 17:42:56
阅读次数:
147
Part1 手写代码 现场手写代码是现在面试中很常见的一类面试题,考察基础的数据结构与算法能力。 1 数组去重的实现 基本数组去重 利用hash表去重,这是一种空间换时间的方法 上面的方法存在一个bug,对于数组[1,2,'1','2',3],去重结果为[1,2,3],原因在于对象对属性索引时会进行 ...
分类:
其他好文 时间:
2019-11-07 19:13:46
阅读次数:
76
Part1 手写代码 现场手写代码是现在面试中很常见的一类面试题,考察基础的数据结构与算法能力。 1 数组去重的实现 基本数组去重 利用hash表去重,这是一种空间换时间的方法 上面的方法存在一个bug,对于数组[1,2,'1','2',3],去重结果为[1,2,3],原因在于对象对属性索引时会进行 ...
分类:
其他好文 时间:
2019-11-01 18:50:08
阅读次数:
105