概述 哈希表(Hash Table)也叫做散列表。基于快速存取的角度设计的一种空间换时间的存储结构。我们想想在14亿个身份证号码中找出其中一个身份证号,我们肯定不可能一个个去找,而我们可以将14亿条数据存放在哈希表中,然后根据哈希表结构就可以快速找到要找的数据。所以哈希表就是这种能够通过给定的关键字 ...
分类:
编程语言 时间:
2020-07-03 17:52:13
阅读次数:
104
就是把字符串转变成一个树,每个节点连接下一个字符,用空间换时间。 对于区分大小写或不区分的题目,只需要改变ch[][26]的值就行了。 ch[u][x]表示u节点(标号决定)下一个x字符节点的标号。 如果题目让记录附加值,那就用val[标号]在插入时记录一下就好了。 #include<iostrea ...
分类:
其他好文 时间:
2020-06-16 23:13:21
阅读次数:
73
ThreadLocal 是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不通的变量值完成操作的场景。简单说 ThreadLocal 就是一种以空间换时间的做法,在每个 Threa ...
分类:
其他好文 时间:
2020-06-08 00:44:57
阅读次数:
72
Java的字符串拼接问题已经是老生常谈的问题了,目前遇到一个业务场景是,在游戏底层新使用了一套事件监听的组件,字符串作为事件的条件值,所以需要较为频繁的拼接和将数字转换为字符串,去匹配事件监听的条件。在条件值已知有限的情况下,可不可以通过空间换时间的方式,用HashMap缓存条件对应字符串的关系,去 ...
分类:
编程语言 时间:
2020-05-26 15:34:49
阅读次数:
72
ThreadLocal: 每个线程只能修改本线程在ThreadLocal中的值,各个线程之间互不干扰。 ...
分类:
编程语言 时间:
2020-05-23 18:04:53
阅读次数:
42
题目要求 算法分析 暴力算法,双循环迭代,即可找到满足条件的数组下标,时间复杂度为O(n2)。 优化算法,可以利用哈希表(C#用字典)在第一次迭代时先存储数组的数据, 这样第二次迭代检索数据时可以利用索引快速查找,实现了用空间换时间。 更优算法,不必要先存储再查找,可以边存数据,边查找。 代码展示( ...
分类:
其他好文 时间:
2020-05-21 00:06:08
阅读次数:
44
相关概念 面向对象的三个特征 封装,继承,多态.这个应该是人人皆知.有时候也会加上抽象. 多态的好处 允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用).主要有以下优点: 可替换性:多态对已存在代码具有可替换性. 可扩充性:增加新的子类 ...
分类:
编程语言 时间:
2020-05-19 00:55:08
阅读次数:
170
一、单例模式介绍 1、定义与类型 定义:保证一个类仅有一个实例,并提供一个全局访问点 类型:创建型 2、适用场景 想确保任何情况下都绝对只有一个实例 3、优点 在内存里只有一个实例,减少了内存开销 可以避免对资源的多重占用 设置全局访问点,严格控制访问 4、缺点 没有接口,扩展困难 5、重点 私有构 ...
分类:
其他好文 时间:
2020-05-17 15:56:38
阅读次数:
52
单例模式: 单例模式:(Singleton Pattern, SP) 确保一个类在任何情况下都绝对只有一个实例,并提供一个全局的访问点 创建型模式 应用场景: 公司CEO 部门经理 总结: 1、私有化构造器 2、保证线程安全 3、延迟加载 4、防止序列化和反序列化的破坏单例 5、防御反射攻击单例 源 ...
分类:
其他好文 时间:
2020-05-08 17:50:58
阅读次数:
66
要点:利用空间换时间,有桶排序的思想,按照基数规则转换,使空间开销较小,但理解起来比计数排序复杂的多。 1 import java.util.Random; 2 3 public class RadixSort { 4 5 public void sort(int arr[]) { 6 int ma ...
分类:
编程语言 时间:
2020-04-30 17:21:29
阅读次数:
68