4.1 字典数据结构 typedef struct dict{ //类型特定函数 dictType *type; //私有数据 void *privateata; //哈希表 dictht ht[2]; //rehash 索引,rehash未进行时,值为-1 int rehashidx;}dict; ...
分类:
其他好文 时间:
2020-05-06 12:12:34
阅读次数:
56
题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 思路补充: 使用set而不是数组,因set是用哈希表实现的,查找效率更高,为O(1) 要检查一个字符串是否有 ...
分类:
其他好文 时间:
2020-05-06 01:07:33
阅读次数:
46
哈希表 我们要在数组或者链表里查找一个指定得数据,唯一能做得事情就是遍历的去查找,这样的时间复杂度是O(n),那有没有一种方法可以以O(1)的时间复杂度找到这个数据呢?现在来想这个一个问题,现实生活中我们的衣物都是分类存放的,放的时候根据是什么种类的衣物放到指定的地方,取的时候依照要取的衣物种类去指 ...
分类:
其他好文 时间:
2020-05-05 19:50:49
阅读次数:
57
题目描述: 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度为O(n),空间复杂度为O(1)。 解题思路: 这道题目相对比较难,一般情况下,我们首先可以想到的是顺序扫描数组,但其时间复杂度为O(n^2)。进一步也可以想到用哈希表保存每一个数次 ...
分类:
编程语言 时间:
2020-05-05 00:47:23
阅读次数:
71
参考: [1] uthash | 学步园 [2] 源码 [3] 官方文档 [4] [5] 一、哈希表的概念及作用 在一般的线性表或者树中,我们所储存的值写它的存储位置的关系是随机的。因此,在查找过程中,需要一系列的与关键字的比较。算法的时间复杂度与比较的次数有关。线性表查找的时间复杂度为O(n)而平 ...
分类:
其他好文 时间:
2020-05-04 19:25:52
阅读次数:
45
哈希表 可以通过关键字 直接找到 数据的存储位置,不需要进行任何的比较,也就是说,哈希表建立了关键字和存储地址之间的一种直接映射关系。其查找的效率相较于前面所学习的查找算法是更高的。 一、认识哈希表 在初中的数学课本中学习过函数的相关知识,给定一个 ,通过一个数学公式,只需要将 的值带入公式就可以求 ...
分类:
其他好文 时间:
2020-05-04 13:27:44
阅读次数:
138
题目: 解答: 优先队列,根据字母数量进行排序。 (1)记录每个字母在字符串中的数量(哈希表); (2)根据字母数量降序排序(插入优先队列,以字母数量较大优先级较高,类似于大顶堆) (3)若队列顶部字母的数量大于一半则无法构造,直接返回空字符串(奇偶有别) (4)按照字母数量降序顺序,当队列不空时, ...
分类:
其他好文 时间:
2020-05-04 13:23:15
阅读次数:
62
Hash表也称散列表,也有直接译作哈希表,Hash表是一种根据关键字值(key - value)而直接进行访问的数据结构。它基于数组,通过把关键字映射到数组的某个下标来加快查找速度,但是又和数组、链表、树等数据结构不同,在这些数据结构中查找某个关键字,通常要遍历整个数据结构,也就是O(N)的时间级, ...
分类:
其他好文 时间:
2020-05-03 22:00:11
阅读次数:
58
一、数据类型 如果学过数据结构就会知道,操作往往是在特定的数据结构上的,不同的数据结构就会有不同的操作,Redis支持以下的数据类型: 字符串(Strings),列表(Lists),集合(Sets),哈希表(Hashes),有序集合(Sorted Sets),Bitmaps和HyperLogLogs ...
分类:
其他好文 时间:
2020-05-03 16:53:38
阅读次数:
44
题目: 删除排序链表中的重复元素 II:给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。 思路: 懒人思维,使用哈希表。 程序: # Definition for singly-linked list. # class ListNode: # def __ini ...
分类:
编程语言 时间:
2020-05-02 19:16:59
阅读次数:
118