数据结构
差唔多先生
编程最不重要的是源代码,最重要的是算法和数据结构。
展开
-
Java HashMap 的指定初始值大小和自动扩容
HashMap指定初始值大小指定初始值大小应为2的幂。如果指定的初始值不是2的幂,则HashMap的容量为大于指定初始值的2的幂;如果不指定,容量默认为16。HashMap自动扩容当HashMap的键值对个数大于容量的75%时,HashMap的容量扩大一倍。...原创 2018-07-17 11:38:41 · 11337 阅读 · 0 评论 -
BFS&DFS广度优先搜索和深度优先搜索
Queue and BFSBFS是Breath First Search的缩写,就是大家所熟悉的广度优先搜索。通俗的讲,BFS就是一层一层地搜索,可以利用队列Queue先进先出的特性实现广度优先搜索。 下面提供两个BFS的模板: Template I/** * Return the length of the shortest path between root and targ...原创 2018-09-04 17:00:24 · 220 阅读 · 0 评论 -
为哈希表设计键Hash Table Design the Key
有时候使用哈希表时已有的数据不能直接作为键Key使用,这就需要我们利用已有的数据设计键Key。 1.当字符串或数组的每个元素的顺序无关紧要时,可以使用排序过的字符串或数组作为键。 2.当只关心每个值的偏移量,通常是对第一个值的偏移量时,可以使用偏移量作为键。 3.对于一棵树,有时候你可能想直接使用节点作为键。但大多数情况,子树的序列化可能是一个更好的想法。 4.对于一个矩阵,可...原创 2018-09-10 20:35:05 · 299 阅读 · 0 评论